2017 Математические методы криптографии №36
УДК 519.7
ФИНИТНЫЕ ФУНКЦИИ В АЛГОРИТМАХ КРИПТОГРАФИИ
А. В. Щуренко, В. Л. Леонтьев Ульяновский государственный университет, г. Ульяновск, Россия
Предлагается применять ортогональные финитные функции (ОФФ) в алгоритмах криптографии в том случае, когда ОФФ не обладают свойством ортогональности. При этом последовательность сеточных наборов ОФФ, утративших свойство ортогональности, по-прежнему является базисом в пространстве Соболева. Потеря свойства ортогональности придает ОФФ новое свойство — множественность вариантов задания параметра ОФФ, что позволяет создавать дополнительные ключи в криптографических алгоритмах. Предложен алгоритм шифрования, основанный на использовании ОФФ, утративших свойство ортогональности. Использование ОФФ, не имеющих свойства ортогональности, в алгоритмах криптографии предложено В. Л. Леонтьевым. Реализация алгоритма выполнена в основном А. В. Щуренко.
Ключевые слова: ОФФ, финитные функции, криптография, шифрование. DOI 10.17223/20710410/36/6
COMPACTLY SUPPORTED FUNCTIONS IN CRYPTOGRAPHY
ALGORITHMS
A. V. Shchurenko, V. L. Leontiev
Ulyanovsk State University, Ulyanovsk, Russia
E-mail: [email protected]
In the paper, we propose a new symmetric block cipher based on the orthogonal finite functions (OFF) in the Sobolev's space. To encrypt a plaintext a = a1a2 ...an, we first convert a to a polynomial a(x) = ai + a2x +.....+ anxn-1, then approximate
n
a(x) by a linear combination F(x) = ^ rifi(x), where f = (f1,f2,..., fn) is an
i= 1
OFF-basis not having the orthogonality property, and finally compute the ciphertext b = b1b2 ... bn, where bi = F(ki) for some values ki of x, i = 1,2,..., n. The numbers ki,... ,kn and some parameters of functions in f form the key of the cipher. To decrypt the ciphertext b, we first, given b1,...,bn and key parameters in f, compute the approximation coefficients r1,... ,rn, next, given k1,... ,kn, compute x1, ...,x'n such that a(xi) = ri for i = 1,2,..., n, then construct a(x) by the Lagrange method, and finally convert a(x) to a.
Keywords: OFF, finite functions, cryptography, encryption.
В работе предлагается алгоритм симметричного шифрования, основанный на применении ортогональных финитных функций. Теория ОФФ-базисов и её применение в алгоритмах численных методов изложены в [1-3].
Основная идея предлагаемого алгоритма заключается в аппроксимации многочлена, содержащего в себе исходное сообщение, с использованием функций ОФФ-базиса,
не обладающих свойствами ортогональности. После представления блока информации в виде многочлена проводится его аппроксимация с помощью ОФФ-базиса в выбранных узлах сетки, затем вычисляются значения ОФФ-аппроксимации с учётом произвольно заданного значения ключа, после чего результат шифрования представляется в виде блока ОФФ-аппроксимации. Информация о координатах точек, в которых проводилась аппроксимация, и о дополнительном ключе позволяет восстановить исходный многочлен и содержащееся в нём сообщение.
Операции по получению коэффициентов аппроксимации проводятся в кольце многочленов степени, не превосходящей п, над кольцом наименьших неотрицательных вычетов ZN, элементы которого образуют полную систему вычетов по модулю N. При этом п — чётное число, равное длине сообщения, а N — простое число. Сообщение длины, большей п, при шифровании следует разбить на блоки длины п.
Количество функций в используемой части ОФФ-базиса должно быть не меньше п. Для выполнения этого требования на равномерной сетке х1 < х2 < ... < Хг, I ^ п, с целыми неотрицательными хг и шагом Н задаётся набор £ = (¿1,^2,... , ¿га), состоящий из п точек ¿г = (хг,уг), где все хг, г = 1,... , п, попарно различны. При этом все уг принадлежат , но их точные значения вычисляются уже в процессе шифрования. Далее задаётся соответствующий набор ОФФ / = (/1, /2,..., /п). В качестве примера берутся ОФФ, являющиеся частным случаем [1, с. 11]. При использовании равномерной сетки с шагом Н каждому узлу сетки хг ставится в соответствие сеточная функция вида
/г(х) =
(х - Хг-1)/Н, х € [хг-1, Хг-1 + Н1] и [хг— + Н2,Хг],
-а + 2(аН + Н1)(хг-1 + йп - х)/(Н(Н,2 - Н1)), х € [хг— + Ньхг_1 + йп], -а + 2(аН + Н2)(х - хг— - йп)/(Н(Н2 - Н1)), х € [хг— + йп,хг— + Н2], (хг+1 - х)/Н, х € [хг,хг + Н1] и [хг + Н2,Хг+1], (1)
в + 2(вН + Н1 - Н)(х - хг - ^п)/(Н(Н2 - Н1)), х € X + Ньхг + йп], в + 2(вН + Н2 - Н)(хг + &п - х)/(Н(Н2 - Н1)), х € X + йп,Хг + Н2],
0, х € [хг-1, Хг+1],
где йп = (Н1 + Н2)/2; Н1 = Н1Н; Н2 = Н2Н; 0 ^ Н1 < Н2 ^ Н; Н1,Н2,а,в — некоторые константы; а > 0, в > 1. Каждая /г представляет собой сумму В-сплайна первой степени с конечным носителем [хг-1,хг+1] и двух В-сплайнов первой степени, взятых с разными знаками, с более компактными по сравнению с [хг-1,хг+1] конечными носителями. За счёт двух дополнительных В-сплайнов и с помощью выбора значений а,в,Н1, Н2 достигается выполнение условий ортогональности: (/г,/) = 0 для всех г = Функции /г(ж), г = 1,... , п, линейно независимы, а их аппроксимирующие свойства представлены следующей теоремой.
Теорема 1 [1]. Если и(х) € ^(Е) и Н + Я2 = 1 (Н + Н2 = Н), а а = в - 1, то
п
существует функция и^ = Е а/ € Мп (аг — некоторые постоянные), такая, что
г=1
<
IIм - ^ сН||м||Ж1 (е), Е 1аг|2 ^ с1||и|
2
г=1
МК)>
где Мп — линейная оболочка /г(х); постоянные с и с1 не зависят от и и Н; ^2 — функциональные пространства Соболева; Ь2 = Ж2 .
Основная идея алгоритма состоит в том, чтобы, отказавшись от выполнения условия [1] ортогональности финитных функций, имеющего, например, в случае Л = 0, Л2 = Л вид
4ав + а - в = 0,
подбирать ОФФ, исходя только из условия а = в — 1 теоремы. При этом числовое значение параметра в может быть любым вещественным числом, большим единицы, что является основой дополнительного шага шифрования исходного сообщения, связанного не только с деталями алгоритма шифрования, но и с дополнительным произвольно задаваемым значением параметра в. В общем случае значения в могут быть разными на различных участках выбранной сетки с узлами х*, что порождает множество дополнительных ключей и поэтому значительно повышает уровень защищённости передаваемого сообщения. Отказ от ортогональности ОФФ значительно расширяет область применения ОФФ, которые, не обладая уже свойством ортогональности, представляют собой особую часть исходного множества ОФФ. Функции (1) в случае Л = 0, Л2 = Л принимают следующий вид:
2а(Яг_1 — х)/Л, х € [Хг-1,Хг-1 + Л/2], 2(а + 1)(х — х*)/Л +1, х € [х^_1 + Л/2, х*],
/¿(х)=^2(в — 1)(х — х*)/Л +1, х € [хг,хг + Л/2], (2)
2в(хг+1 — х)/Л, х € [х* + Л/2,хт],
.0, хЕ [х*_1,х*+1].
Пусть А — множество всех открытых текстов; К — множество выбранных случайным образом векторов к; В — множество всех шифртекстов. Алфавитом А является множество Z¿ (1 < Ь ^ N), алфавитом К — множество ^жг+1, алфавитом В — множество целых чисел от (—[вЬ — 1) до (|_вЬ +1), Л € Ъщ, в € К (в > 1). Используемые здесь и далее усечённые квадратные скобки означают операцию округления до ближайшего целого числа.
Запишем исходное сообщение а € А в векторном виде:
а = (а1, а2,..., ага).
Пусть также выбран вектор к € К, к = (к1, к2,... , кп), и значения в, Л и х1, связанные с используемой сеткой. При этом все компоненты к попарно различны и для всех г = 1,..., п/2 имеет место
кт € [х^, х^+1 ], т = 2г — 1, 2г,
кт € , х^+2], т = 2г — 1, 2г,
где х^ и € ) —узлы сетки, между которыми лежат к2*_1 и к2*. Други-
ми словами, каждая компонента к* является координатой на оси Ох точки, лежащей между двумя соседними узлами сетки х^ и . Кроме того, если к2*_1 и к2* лежат в [х^ ,х^4+1 ], то в данном интервале и в соседних , х^ ], [х^4+1 , х^+2 ] не лежит более ни одна из компонент кг, отличная от к2*_1 и к2*.
Для большей определённости в предлагаемом алгоритме пусть к2* € [х^ + Л/2, ], к2*_1 € [х^, х^ + Л/2]. Вместе с тем возможны другие варианты расположения точек с координатами к2*_1, к2* и связанные с этим другие варианты алгоритма.
При k2j-1 G [xj;, xj; + h/2], k2j G [xj; + h/2,xji+1 ], для исключения многозначности результатов расшифрования, пусть
(в - 1)(k2j-1 - xj;) > в(xj;+i - k2j). (3)
В силу ограничений, наложенных на элементы k, целесообразно проводить их выбор в три этапа. На первом шаге выбирается конкретный участок [xj; ,xji+1 ], на втором шаге — k2j-1, на третьем шаге — значение k2i с учётом условия (3):
k2i >x„+i - (в - ^ - j). (4)
При невозможности выбора k2i второй и третий шаги повторяются.
При этом следует отметить, что условия выбора элементов вектора k не препятствуют использованию для их генерации криптографически стойких генераторов случайных чисел. На всех трёх этапах, а также при генерации значений в, h и x1 возможно использование таких алгоритмов, как алгоритм Блюм — Блюма — Шуба или криптографически стойкая хэш-функция. Это сводит задачу генерации ключей к передаче начальных значений генераторов, что упрощает задачу генерации, рассылки и хранения ключей без ущерба для криптостойкости алгоритма.
Обозначим x1 вектор узлов сетки, используемых при аппроксимации многочлена. При этом x'2i-1 = xj;, x'2i = xji+1 (i = 1,...,n/2). В качестве f возьмем набор f = (f1, f2,... , fn), где каждая f — ОФФ-функция, соответствующая узлу xj. Вектор (k, в, h, x1) является ключом, вектор b G B, b = (b1, b2,... , bn), —шифртекстом.
Алгоритм шифрования состоит из следующих четырёх шагов.
Шаг 1. Вектору a сопоставляется многочлен
a(x) = a1 + a2x + a3x2 + ... + anxn-1. (5)
Шаг 2. Проводится аппроксимация многочлена a(x) с помощью функций fi. При этом аппроксимирующая функция F(x) является суммой произведений ОФФ-функций fi и соответствующих коэффициентов аппроксимации r^
n
F(x) = E rifi(x). i=1
Так как f(xj) = , где — символ Кронекера (i,j G {1,...,n}), коэффициент i-й ОФФ-функции равен значению многочлена в точке с координатой xj. Значения этих коэффициентов — неотрицательные целые числа. Таким образом, значения вектора коэффициентов аппроксимации r = (r1, r2,..., rn) находятся по формуле
Г = a(xj) mod N.
Шаг 3. Формируется вектор b = (b1, b2,... , bn), где b равно значению аппроксимирующей функции в точке с координатой по оси Ox равной kj, то есть bj = F (kj), i = 1,... , n.
Поскольку для всех i G {1,... ,n/2} точки k2j-1 и k2j лежат между узлами 1 и x2j, значения аппроксимирующей функции в данных точках равны линейным комбинациям соответствующих значений f2j-1 и f2j функций (2):
F (k2j-1) = r2i-1f2i-1(k2i-1) + r2if2i(k2i-1), F (k2j) = r2i-1f2i-1(k2t) + r2if2i(k2t).
Согласно (2),
/2i-x(k2i-i) = 2(в - 1)(k2i-i - x2i-i)/h + 1, /2i(k2i-i) = 2a(x2i-i - fc2i-i)/h, /2i-i(fc2i) = 2в(x2i - k2i)/h,
/2i(k2i) = 2(a + 1)(k2i - x2i)/h +1.
Таким образом,
F (k ) ,'2(в - 1)(k2i-i - x2i-i) +4+ 2(в - 1)(x2i-i - k2i-i) F (k2i-i) = r2i-H -;--+ 1 I + Г2Г
h
2(в - 1)(k2i-i - x2i-i) h
h
(r2i-i - Г2г) + r2i-i,
F (k2i) = r2i-i-h--+ f2i ( -h--+ 1
2в(х2г - k2i) h
(r2i-i - Г2г) + Г2г.
Шаг 4. Вектор b, являющийся шифртекстом, записывается в виде
b =(LF(fci)l, LF(fe2)l,..., LF(k„)l).
Алгоритм расшифрования заключается в нахождении коэффициентов исходного многочлена a(x) на основе вектора шифртекста b, известных значений k и в, а также параметров сетки h и xi. Запишем шифртекст b G B в векторном виде
b = (bi,b2,... ,bn),
где n — чётное натуральное число. Пусть известен вектор k G K, k = (ki, k2,... , kn), использованный при шифровании, а также значения в, h и xi. При этом все ki попарно различны и все k2i-i и k2i (i = 1,... , n/2) являются координатами на оси Ox точек, лежащих между двумя соседними узлами сетки x2i_1 и x^j.
Шаг 1. Вектору а исходного сообщения при шифровании был сопоставлен многочлен (5). При проведении аппроксимации а(х) с помощью ОФФ-функций / в точках x' получился вектор коэффициентов аппроксимации r = (ri, r2,..., rn), компоненты которого находятся по формуле
ri = a(xi) mod N.
Для нахождения значений вектора r при расшифровании значения вектора b берутся парами и первый элемент в паре складывается с элементом, обратным второму, то есть определяются значения bj = b2i-i - b2i (i = 1,... , n/2):
b'
2(в - 1)(k2i-i - x2j-i) 2в(x2j - k2i)
h
h
+ 11 (r2i-i - r2i).
Далее находятся значения (r2i-i - r2i) по формуле
(r2i-i - r2i)
b'
L2(e - 1)(k2i-i - x2^i)/h - 2в(x2j - k2i)/h + 1
Шаг 2. Вычисляются значения вектора г. Для этого используется формула (6)
^ = ^ (Ы!
2в (4; - Ы
н
(Г2г-! - Г2г)
+ Г2г
где г = 1,..., п/2. Отсюда следует, что
Г2г = &2г -
2в (Х2; - Ы
н
(Г2г-1 - Г2г)
Г2г-1 = (Г2г-1 - Г2г) + Г2г
Шаг 3. Вектор коэффициентов аппроксимации г теперь известен, по значениям вектора к определяются все х\ (к2; € [х'2;-1,х'2;], г = 1,...,п/2). Решение системы уравнений
'а(ж!) = г1, а(х'2) = Г2,
7)
даёт коэффициенты многочлена а(х). Найти целочисленное решение данной системы можно, применив сеточные полиномы Лагранжа для набора точек Ь = = ((х'ь г1), (х'2, г2), ..., (хП, гп)). Тогда а(х) имеет вид
п
а(х) = Е Г;/;(х),
;=1
где /¿(х) = П
-у есть многочлены Лагранжа, связанные с узлами х^ сетки.
7=1,7=;х; ху
Шаг 4. По значениям коэффициентов многочлена а(х) строится вектор а, являющийся исходным сообщением.
Пример 1. Пусть дана равномерная сетка, определяемая значениями Н =10, х1 = 0, и задано значение параметра ОФФ в = 3,75. При этом ОФФ-функции /(х) имеют следующий вид:
5,5(х;-1 - х)/10, х € [х;-1,х;-1 + 5], 7,5(х - х;)/10 + 1, х € [х;-1 + 5,х;], 5,5(х - х;)/10 + 1, х € [х;,х; + 5],
7,5(х;+1 - х)/10, 0,
х € [х; + 5, х;+1 ],
х € [хг-1, х;+1].
Пусть также N = 257, Ь = 256, / = 26. Тогда х^ = 250, алфавит А = ^256, алфавит К = ^251, алфавит В — множество целых чисел от -961 до 961.
Шифрование. Пусть исходное сообщение имеет вид а = (20,13, 2, 4, 5,1), то есть п = 6. Пусть заданы значения вектора к = (14,19, 33, 39, 53, 58). При этом для всех компонент к справедливо следующее условие: если к2;-1 и к2; лежат в [ху ,хУ4+1 ], то в данном интервале и в соседних интервалах [хУ4-1, ху ], [хУ4+1 ,ху+2 ] не лежит более ни одна из компонент к, отличная от к2;_ 1 и к2;.
г
п
Проверка условия (4)
19 > 20 -
39 > 40 -
58 > 60 -
(3,75 - - 1)(14 - 10)
3,75
(3,75 - -1)(33 - 30)
3,75
(3,75 - 1)(53 - 50)
3,75
17,07,
37,8,
57,8
показывает его выполнение.
Случайные величины xi и h получили в результате генерации значения xi = 0, h = 10, поэтому вектор координат узлов сетки имеет вид x' = (10, 20, 30,40, 50, 60).
Шаг 1. Вектору а сопоставляется многочлен a(x) = 20 + 13x + 2x2 + 4x3 + 5x4 + x5.
Шаг 2. Проводится аппроксимация a(x) с помощью ОФФ-функций /. При этом используется значение в = 3,75. В результате получается вектор коэффициентов аппроксимации r = (ri, r2, r3, r4, r5, r6):
ri = a(10) = 154350 = 150 (mod 257), r2 = a(20) = 4033080 = 236 (mod 257), r3 = a(30) = 28460210 = 30 (mod 257), r4 = a(40) = 115459740 = 177 (mod 257), r5 = a(50) = 344255670 = 58 (mod 257), r6 = a(60) = 843272000 = 2 (mod 257).
Получился вектор r = (150, 236, 30,177, 58, 2). Шаг 3. Строится вектор b:
bi = LF (ki)l = b2 = LF(k2)l :
Ьз = LF (k3)l = b4 = LF (k4)l = b5 = LF (k5)l =
b6 = LF (k6)l
2(3,75 - 1)(14 - 10) 10
2 ■ 3,75(20 - 19)
(150 - 236) + 150
10
(150 - 236) + 236
2(3,75 - 1)(33 - 30) 10
2 ■ 3,75(40 - 39)
(30 - 177) + 30
10
(30 - 177) + 177
2(3,75 - 1)(53 - 50) 10
2 ■ 3,75(60 - 58)
(58 - 2) + 58
= -39, 172, -213, 67, 150,
10
(58 - 2) + 2
86,
b = (-39,172, -213, 67,150, 86).
Вектор Ь является шифртекстом.
Расшифрование. При расшифровании шифртекста Ь = (-39,172, -213,67,150, 86) используются сформированные при шифровании векторы и величины к = (14,19, 33, 39, 53, 58), в = 3,75, к = 10, х = 0, X = (10, 20, 30, 40, 50, 60), определяющие ключ.
Шаг 1. Находятся значения выражений (r2i-1 — r2i), i = 1,... , n/2:
2(в — 1)(ki — x1) 2в (X2 — k2)
h
h
+ 1 (r1 — r2) = —39 — 172 = —211,
ri — Г 2
b'
Гз — Г4
-211
_(2(в — 1)(ki — x1)/h — 2в (X2 — k2)/h + 1)
211
2,2 — 0,75 + 1
-86,
2(в — 1)(кз — x3) 2в (x4 — k4)
h
h
+ 1 (Гз — Г4) = —213 — 67 = —280,
280
_2(в — 1)(кз — x3)/h — 2в(х4 — k4)/h +1
280
1,65 — 0,75 + 1
-147,
b'
Г5 — Гб
2(в — 1)(k5 — x5) 2в (хб — кб)
h
h
64
+ 11 (Г5 — Гб) = 150 — 86 = 64,
64
|_2(в — 1)(к5 — x5)/h — 2в (х'б — k6)/h + 1
1,65 — 1,5 + 1
56.
Шаг 2. Для определения значений компонент вектора г вычисляются
b
2=
2 ■ 3,75(20 — 19) 10
■ (—86)
+ r 2 = —64 + r 2 = 172,
r2 = 172 + 64 = 236, r1 = (r1 — r2) + r2 = —86 + 236 = 150, 2 ■ 3,75(40 — 39)
b4
10
(—147)
+ Г4 = —110 + Г4 = 67,
r4 = 67 + 110 = 177, r3 = (r3 — r4) + r4 = —147 + 177 = 30, 2 ■ 3,75(60 — 58)
b
б=
10
56
+ Гб = 84 + Гб = 86,
Гб = 86 — 84 = 2, Г5 = (Г5 — Гб) + Гб = 56 + 2 = 58.
Поэтому r = (150, 236, 30,177, 58, 2).
Шаг 3. Решается система уравнений вида (7):
'а(10) = 150 (mod 257), а(20) = 236 (mod 257), а(30) = 30 (mod 257), а(40) = 177 (mod 257), а(50) = 58 (mod 257), ^а(60) = 2 (mod 257).
В итоге получается многочлен а(х) = 20 + 13х + 2х2 + 4х3 + 5х4 + х5.
Шаг 4. По значениям коэффициентов многочлена а(х) строится вектор а = = (20,13, 2, 4,5,1), являющийся исходным сообщением.
Замечание 1. Для обоснования выбора простого N запишем систему (7) в мат-
ричной форме:
1
1
X1
КГ-1\
(xjn-7
Если N простое и все точки х^, г = 1,... , п, различны, то основная матрица системы невырожденная и, следовательно, система имеет единственное решение.
Замечание 2. В рассмотренном примере показано использование алгоритма в режиме простой замены, однако в практических реализациях, за исключением случаев шифрования коротких сообщений, целесообразно использование иных режимов. При этом разницу в объёмах блоков открытого текста и шифртекста можно компенсировать, заменяя в процессе шифрования очередной блок открытого текста х на результат обратимой функции $(х), по объёму равный блоку шифртекста.
Поскольку алгоритм оперирует с блоками текста фиксированной длины п, уместно его сравнение с алгоритмами блочного шифрования. К достоинствам предложенного алгоритма относится динамическая длина ключа, что упрощает переход на версии алгоритма с большей длиной п блока текста. Более того, значения N и Ь также не фиксированы, что позволяет алгоритму шифрования на основе ОФФ оперировать с множествами А, К и В, имеющими алфавит любой длины, а также задавать сетки с любым максимальным значением х^.
Параметр в может принимать любые вещественные значения больше единицы, однако в практических реализациях алгоритма целесообразно взять некоторую конечную область значений в, разбить её на интервалы, например длины 1/N, и выбрать значения в, лежащие на концах данных интервалов. При этом поскольку число возможных значений в на каждом участке [г, г + 1], г = 0,... , N — 1, зависит от N, при увеличении N расширяется множество допустимых значений в. Значительно увеличивается преимущество алгоритма в стойкости шифрования при использовании любых вещественных значений в по сравнению с целыми значениями. Увеличение максимального значения в расширяет множество допустимых значений ключа, однако вместе с тем значительно возрастает объём шифртекста по сравнению с открытым текстом. В связи с этим в практических реализациях алгоритма рекомендуется ограничивать максимальное значение в, находя баланс между возрастающим объёмом шифртекста и количеством допустимых значений ключа.
Сравним алгоритм с поточным шифром гаммирования. При многократном использовании ключа существенно повышается стойкость шифрования в предложенном алгоритме по сравнению с шифром гаммирования к таким видам криптоанализа, как атаки на основе шифртекста, известного открытого текста, выбранного открытого текста и выбранного шифртекста. При шифровании гаммированием знание открытого текста и шифртекста позволяет определить точное значение гаммы, что исключает многократное использование одного и того же ключа. В случае шифрования предложенным методом знание двух сообщений а и Ь не позволяет однозначно подобрать параметры (к, в, к, Х1). Изменение любого из них, при соответствующих изменениях других параметров, приведёт к тому, что данному открытому тексту а будет соответствовать тот же шифртекст Ь.
Уровень сложности дешифрования в предложенном алгоритме характеризуется необходимостью перебора возможных значений параметров к и х1 и решения со всеми возможными парами (к,х1) уравнений (6) с неизвестными в, и , а также необходимостью решения системы (7).
Увеличение п приводит к увеличению мощности множества допустимых значений ключа, вместе с тем растёт сложность шифрования и расшифрования, поскольку максимальная степень многочлена (5), а также количество уравнений (7) зависят от п.
Пусть, например, N = 65537, к = 4, п = 30, х^ = 65536, а максимальное допустимое значение в равно 256. Пусть также х1 = 0. Тогда сетка разбивается на 65536/(2к) = = 8192 различных участка, каждому из которых могут принадлежать две компоненты вектора к. С учётом условия (4), каждому участку [х'2^-1, х2^+1] могут соответствовать
16 допустимых значений пар (к2^, к2^-1). Общее число допустимых значений компонент вектора к в таком случае равно
8192'
|К| = А8192 ■ 8 = 8192' ■ 8 « 3,2 ■ 1063. 1 1 8192 (8192 — 15)! '
Разобьём область допустимых значений в (в > 1) на интервалы длины . Таким образом, для каждого возможного значения вектора к существует 255 ■ 65536 — 1 = = 16711679 допустимых значений в.
Множество допустимых значений ключа содержит 3,2■ 1063 -16711679 ~ 5,3■ 1070 элементов, что даже при многократном использовании ключа делает абсурдными задачи полного перебора либо записи всех подобранных сочетаний (к, в, к, х1) с целью вскрытия следующего шифртекста перебором лишь записанных заранее значений. При этом следует учесть, что в практических реализациях алгоритма возможно разделение области допустимых значений в на интервалы длины меньше , а также нефиксированное значение х1, что дополнительно расширяет множество допустимых значений ключа.
Вместе с тем при уменьшении п распределение символов шифртекста становится все более схожим с распределением символов открытого текста, что значительно упрощает задачу дешифрования без знания ключа.
В дальнейшем предполагается более подробное исследование стойкости предложенных алгоритмов к различным атакам в зависимости от выбранных параметров и ключа.
Методы использования базисов в криптографических алгоритмах развиваются и в других работах [4, 5], новизна предложенного здесь алгоритма шифрования заключается в использовании принципиально иных базисных функций — ОФФ, не обладающих свойством ортогональности.
ЛИТЕРАТУРА
1. Леонтьев В. Л. Ортогональные финитные функции и численные методы. Ульяновск: Изд-во УлГУ, 2003. 178 с.
2. Леонтьев В. Л., Лукашенец Н. Ч. Сеточные базисы ортогональных финитных функций // Журн. вычисл. матем. и матем. физ. 1999. Т. 39. №7. С. 1158-1168.
3. Леонтьев В. Л. Ортогональные сплайны и вариационно-сеточный метод // Математическое моделирование. 2002. Т. 14. №3. С. 117-127.
4. Лукомский Д. С., Лукомский С. Ф. Всплесковые базисы и криптография // Математика. Механика. 2011. №13. С. 55-58.
5. Левина А. Б. Сплайн-вэйвлеты и их некоторые применения: дис. ... канд. физ.-мат. наук. СПб., 2009. 214с.
REFERENCES
1. Leont'ev V. L. Ortogonal'nye finitnye funktsii i chislennye metody [Orthogonal finite functions and numerical methods]. Ul'yanovsk, UlSU Publ., 2003. 178p. (in Russian)
2. Leont'ev V.L., Lukashenets N. Ch. Setochnye bazisy ortogonal'nykh finitnykh funktsiy [Grid bases of orthogonal compactly supported functions]. Zh. Vychisl. Mat. Mat. Fiz., 1999, vol.39, no. 7, pp. 1158-1168. (in Russian)
3. Leont'ev V. L. Ortogonal'nye splayny i variatsionno-setochnyy metod [Orthogonal splines and variational-grid method]. Matem. Mod., 2002, vol. 14, no. 3, pp. 117-127. (in Russian)
4. Lukomskiy D. S., Lukomskiy S. F. Vspleskovye bazisy i kriptografiya [Splash bases and cryptography]. Matematika. Mekhanika, 2011, no. 13, pp. 55-58. (in Russian)
5. LevinaA.B. Splayn-veyvlety i ikh nekotorye primeneniya [Spline-Wavelets and some their Applications]. PhD Thesis. SPb., 2009. 214p. (in Russian)