СПОСОБ АСИММЕТРИЧНОГО ШИФРОВАНИЯ СООБЩЕНИЙ НА ОСНОВЕ МОДИФИЦИРОВАННОЙ ЗАДАЧИ О РЮКЗАКЕ
METHOD FOR ASYMMETRIC MESSAGE ENCRYPTION BASED ON MODIFIED BACKPACK TASK

1. Область техники, к которой относится изобретение
Изобретение относится к криптографической защите данных, а именно к способам шифрования и дешифрования сообщений при осуществлении скрытой связи.
2. Уровень техники
а) Описание аналогов способа
Известен способ шифрования на основе модифицированной задачи о рюкзаке с использованием Китайской теоремы об остатках (S.C. Lu and L.N. Lee "A Simple and Effective Public-Key Cryptosystem", COMSAT Technical Review, 1979, pp. 15-24). В данном способе:
а
а
а
а
а
а
а
а
а
а
а
а
а
а
a
1
2
11
12
21
22
1
2
11
12
21
22
11
12
21
22
1
2
1
2
i
ij
i
генерируют на принимающей стороне в устройстве формирования ключей: секретный ключ в виде вектора '=(р, р; , , , ), где: р, р - простые большие числа, , , ,  - числа среднего размера, причем -≠0; открытый ключ в виде вектора =(r, c, c), где: r=р⋅р, а c получают на основе Китайской теоремы об остатках: с≡(mod p), i=1, 2; j=1, 2;
а
опубликовывают (пересылают на передающую сторону) открытый ключ ';
1
2
делят сообщение X на передающей стороне на блоки S'=(x, x);
1
2
1
1
2
2
зашифровывают блок S'=(x, x) и получают криптограмму S на передающей стороне в шифраторе в соответствии со следующим подходом: S≡cx+cx(mod r);
пересылают криптограмму S на принимающую сторону;
1
2
i1
1
i2
2
i
i
i
a
a
расшифровывают криптограмму S и получают S'=(x, x) на принимающей стороне в дешифраторе на основе решения двух линейных уравнений: x+x=s, i=1, 2, где: s≡S(modp), i=1, 2.
Недостатком данного способа является низкая криптостойкость построенных на его основе криптосистем. Линейность функции шифрования позволяет криптоаналитику восстанавливать открытый текст из зашифрованного текста без фактического нахождения секретного ключа (J.-M. Goethals and С.Couvreur. "A Cryptanalytic Attac on the Lu-Lee Public-Key Cryptosystem", Philips Journal of Research, Vol. 35, Nos. 4/5, 1980, pp. 301-306).
Известен способ шифрования на основе модульных рюкзаков (V. Niemi. "A New Trapdoor in Knapsacks", Advances in Cryptology EUROCRYPT'90 Proceedings, Springer-Verlag, 1991, pp. 405-411). В данном способе:
a
а
n×n
n×n
nxn
-1
-1
генерируют на принимающей стороне в устройстве формирования ключей: секретный ключ в виде вектора '=(C, D, S, Δ, R), где: C, D, S∈(Z/pZ) - матрицы, элементами которых являются числа |g|≤k, Δ∈(Z/pZ) - диагональная матрица, элементами которой являются числа |g|>[p/2]-k, R∈(Z/pZ) - невырожденная матрица; открытый ключ в виде вектора =(р,Е), где: Е=(А В) - матрица размером n×2n, А=R(Δ-SC), В=-RSD;
а
опубликовывают (пересылают на передающую сторону) открытый ключ ';
2n
n
зашифровывают сообщение X={x∈{0,l}} и получают криптограмму S={s∈(Z/pZ)} в соответствии со следующим подходом ℑ:X→S, ℑ(x)=Ex;
пересылают криптограмму S на принимающую сторону;
расшифровывают криптограмму S и получают исходное сообщение в соответствии с правилом:
i
1
n
n+1
2n
(2)
(1)
(1)
Т
{2)
Т
где:  1≤i<n. Значение x, n+1≤i≤2n вычисляют путем решения уравнения: Вх=s-Ах, где х=(х, …, x) и х=(x, …, x).
Недостатком данного способа также является низкая криптостойкость построенных на его основе криптосистем ввиду возможности восстановления открытого текста из зашифрованного текста без фактического нахождения секретного ключа (Т.М. Chee. "The Cryptanalysis of New Public-Key Cryptosystem Based on Modular Knapsacks", Advances in Cryptology CRYPTO'91 Proceedings, Springer-Verlag, 1992, pp. 204-212).
Успешных криптоаналитических атак не известно на способ, основанный на использовании многостадийной рюкзачной системы (Н.А. Hussain, J,W,A, Sada and S.M. Kalipha, "New Multistage Knapsack Public Key Cryptosystem", International Journal of Systems Science, v. 22, n. 11, Nov 1991, pp. 2313-2320). В нем фиксируют рюкзачный вектор для каждого этапа, и выход (зашифрованный текст) после каждой стадии шифрования используют в качестве входных данных (текста) на следующий этап. Существенным недостатком данного способа является значительное возрастание требований к вычислительным ресурсам.
Не известно успешной атаки также на способ, построенный на основе мультипликативного рюкзака (S.K. Yasuyuki Murakami and М. Kasahara "New Multiplicative Knapsack-Type Public Key Cryptosystems", IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences Vol. E84-A No. 1, 2001, pp. 188-196). Данный способ основан на задаче дискретного логарифмирования, что также существенно увеличивает требования к вычислительным ресурсам в процессе расшифрования.
б) Описание прототипа способа
Наиболее близкими по своей технической сущности (прототипом) к заявляемому способу асимметричного шифрования сообщений является классический способ шифрования с открытым ключом Меркла-Хеллмана (Пат. 218582 U.S.A., МПК H04L 9/04. Public key cryptographic apparatus and method / Martin E. Hellman, Stanford; Ralph C. Merkle, Palo Alto, both of Calif, заявитель и патентообладатель The Board of Trustees of the Leland Stanford Junior University, Stanford, Calif. - №839939, заявл. 06.10.1977; опубл. 19.08.1980). В данном способе:
а
a
a
a
a
l
i
n
генерируют на принимающей стороне в устройстве формирования ключей: секретный ключ в виде сверхвозрастающего вектора  с количеством элементов, равным n, причем  - элементы вектора '; открытый ключ на основе элементов  секретного ключа в виде вектора ={, …, , …, }, где  i=1, 2, …, n; m, w - большие взаимно простые целые числа;
а
опубликовывают (пересылают на передающую сторону) открытый ключ ';
а
зашифровывают исходное сообщение X и получают криптограмму S на передающей стороне в шифраторе путем суммирования произведений элементов вектора  открытого ключа шифрования с битами исходного сообщения, представленными в виде элементов вектора
пересылают криптограмму S на принимающую сторону;
расшифровывают криптограмму S на принимающей стороне в дешифраторе в соответствии со следующим подходом:
где: S' - откорректированное значение зашифрованного сообщения (объем рюкзака в «простой» задаче о рюкзаке), позволяющее получить исходное сообщение X.
Недостатком указанного способа (прототипа) является низкая криптостойкость построенных на его основе криптосистем, так как с применением алгоритма целочисленного программирования Ленстры они могут быть раскрыты за полиномиальное время (Баричев С.Г., Серов Р.Е. Основы современной криптографии. Учебный курс - М.: Горячая линия - Телеком, 2006. - 152 с.).
3. Раскрытие изобретения
а) Технический результат, на достижение которого направлено изобретение
n
n
Целью настоящего изобретения является повышение криптостойкости построенных на его основе криптографических систем. Поставленная цель достигается тем, что перед передачей сообщения по открытым каналам связи производится его зашифрование с использованием модифицированной задачи о рюкзаке, допускающей использование повторяющихся элементов рюкзачного вектора. Криптостойкость соответствующей системы сравнительно выше, чем криптостойкость аналогичных стандартных систем. В самом деле, если обозначить через N(K) - количество всех вариантов выбора ключей, то для стандартного рюкзака оно равно N(K)=2, а для модифицированного рюкзака, допускающего повторение элементов рюкзачного вектора: N(K)=p, где n - количество элементов рюкзачного вектора, р≥3 - максимальное допустимое количество повторений элемента рюкзачного вектора.
б) Сходными признаками способа (прототипа) Меркла-Хеллмана с заявляемым способом являются следующие:
a
a
a
a
l
i
n
генерируют на принимающей стороне в устройстве формирования ключей открытый ключ на основе элементов  секретного ключа в виде вектора ={, …, , …, }, где , i=1, 2, …, n; m, w - большие взаимно простые целые числа;
а
опубликовывают (пересылают на передающую сторону) открытый ключ ';
пересылают криптограмму S на принимающую сторону.
в) Существенными отличительными признаками заявляемого способа асимметричного шифрования сообщений на основе модифицированной задачи о рюкзаке от известного способа шифрования с открытым ключом Меркла-Хеллмана являются следующие:
а
а
а
генерируют секретный ключ на принимающей стороне в устройстве формирования ключей в виде сверхвозрастающего вектора  так, чтобы для каждого элемента  вектора ' выполнялось неравенство  - элементы вектора ', р - максимальное допустимое количество повторений j-го элемента вектора ';
i
делят сообщение X на передающей стороне на блоки S' в виде вектора элементов x размером по b двоичных разрядов;
а
i
зашифровывают блок S' исходного сообщения на передающей стороне в шифраторе путем суммирования произведений элементов вектора  открытого ключа шифрования с элементами x блока S';
расшифровывают блок S' исходного сообщения X на принимающей стороне в дешифраторе путем обратного модульного преобразования и последовательного вычитания одного и того же значения элемента секретного ключа до тех пор, пока зашифрованное значение не станет меньше значения вычитаемого элемента, и только тогда перехода к следующему элементу при вычитании:
а
а
Благодаря новой совокупности существенных признаков, заявляемый способ обеспечивают возможность использования новой задачи о рюкзаке (задачи, в которой все предметы имеют различный объем, но в рюкзак может быть положено несколько копий каждого предмета, либо ни одной копии), решение которой является тривиальной задачей в случае использования сверхвозрастающего вектора ' рюкзака (такой вектор применяется с использованием закрытого ключа дешифровки) и NP-полной в случае использования невозрастающего вектора  рюкзака (такой вектор применяется с использованием открытого ключа шифрования). При этом заявляемый способ обладает более высокой криптостойкостью по сравнению с классическим, так как к нему не применимы известные методы компрометации криптосистем на основе классического рюкзачного метода.
4. Краткое описание чертежей
На фигуре 1 представлена функциональная схема криптосистемы с использованием способа асимметричного шифрования сообщений на основе модифицированной задачи о рюкзаке.
5. Осуществление изобретения
Рассмотрим процесс зашифрования и расшифрования текстового сообщения с применением заявляемого способа асимметричного шифрования сообщений на основе модифицированной задачи о рюкзаке. В качестве исходного сообщения рассмотрим слово «XCODE», где каждая буква кодируется 8-битным числом, совместимым со стандартом ACSII. Выберем р (максимальное количество повторений элементов рюкзака) равным 21. Выберем b (публикуемое количество разрядов для коэффициентов повторений) равным 4.
Соответственно, исходное сообщение переводят в двоичную форму и разбивают на группы по 4 бита. Данное преобразование приведено в таблице 1.
В соответствии с преобразованием, приведенным в таблице 1, исходное сообщение X можно рассматривать, как последовательность элементов разрядностью 4 бита: (5, 8, 4, 3, 4, 15, 4, 4, 4, 5).
а
Далее выберем сверхвозрастающий обобщенный рюкзачный вектор ':
-l
Также выберем m равным 13722115 и w равным 12498357. Соответственно, выбранные w и m являются взаимно простыми. Обратный w по модулю m равен 6856348:
-l
w⋅wmodm=12498357⋅6856348mod13722115=1.
а
а
Для формирования публичного ключа необходимо исходный сверхвозрастающий рюкзачный вектор ' преобразовать в обычный невозрастающий рюкзачный вектор :
a
а
=w⋅'modm={10050841,340904,2263952,2705373,9527698}.
Соответственно, так как каждому элементу (которых всего n, равное 5) рюкзачного вектора необходимо сопоставить часть исходного сообщения разрядностью 4 бита (разрядность равна b в соответствии с выбранным р) то исходное сообщение необходимо разбить на порции по 5 элементов:
X1=(5,8,4,3,4); Х2=(15,4,4,4,5).
В соответствии с описанным способом каждый элемент порции исходного сообщения характеризует количество повторений элемента рюкзачного вектора. Соответственно шифрограммы для каждой порции рассчитаются следующим образом:
S1=5⋅10050841+8⋅340904+4⋅2263952+3⋅2705373+4⋅9527698=108264156;
S2=15⋅10050841+4⋅340904+4⋅2263952+4⋅2705373+5⋅9527698=219642021.
Полученные порции зашифрованного сообщения (шифрограммы) передаются через незащищенные каналы получателю, который имеет секретный ключ.
На стороне получателя полученные шифрограммы подвергаются обратному модульному преобразованию:
-1
S1'=S1⋅wmodm=108264156⋅6856348mod13722115=2584373;
-1
S2'=S2⋅wmodm=219642021⋅6856348mod13722115=3236088.
а
Полученные значения являются суммами повторяющихся элементов сверхвозрастающего рюкзачного вектора ', из которых можно тривиально получить исходные коэффициенты повторения:
В результате выполнения операции получаются значения, соответствующие порции исходного сообщения X1=(5, 8, 4, 3, 4). Аналогичные действия затем выполняются для S2, в результате чего получается вторая порция исходного сообщения Х2=(15, 4, 4, 4, 5). Путем соединения полученных порций и обратного перекодирования согласно таблице 1, получается исходное сообщение «XCODE» принятое получателем.
В качестве примера на фигуре 1 приведена функциональная схема криптосистемы, построенной на основе разработанного способа. В такой системе передача всей информации между абонентами производится посредством незащищенных открытых каналов связи 7 (например, через Интернет, через проводную или беспроводную сеть, к которой может несанкционированно подключиться постороннее лицо).
а
а
а
-l
Сначала получатель формирует публичный (открытый) Е и секретный D ключи посредством блока формирования ключей 10, передавая в качестве исходных данных подготовленные исходные параметры для генерации ключей (', b, w, w, m). Величина выбранных значений должна быть достаточно велика для того, чтобы обеспечить нецелесообразность попыток прямого подбора сгенерированных ключей. Например, достаточно надежной можно считать систему, в которой значения w, m и элементы векторов ' и  имеют разрядность не менее 512 бит. При этом значение b не рекомендуется брать близким к единице, так как подобные значения приводят к генерации рюкзачного вектора с малым количеством повторяющихся элементов, что негативно отражается на криптостойкости системы.
Полученный секретный ключ D передается в дешифратор 9, а публичный ключ Е передается в узел передачи информации 8 через открытые каналы передачи 7 на узла передачи отправителя 2, который передает полученный публичный ключ Е шифратору 1.
a
Также передаваемый публичный ключ Е может быть перехвачен устройством криптоаналитика 4 (при этом криптоаналитик получает информацию об элементах вектора  и о значении b). При этом перехваченный публичный ключ Е передается в блок криптоанализа 6. Устройство блока криптоанализа 6 полностью зависит методов криптоанализа, используемых криптоанатиком и в данном случае не рассматривается. Функция блока криптоанализа 6 заключается в подборе по перехваченному публичному ключу Е и шифрограмм S таких исходных параметров для блока формирования ключей 5, которые позволят получить секретный ключ Dx, который позволит получить сообщение Хх, равное исходному сообщению X. Соответственно, для криптосистемы, в которой исходные параметры генерации ключей выбраны в соответствии с описанными ранее рекомендациями, процесс поиска подходящего ключа Dx будет нецелесообразен по вычислительной сложности, либо по доступным ресурсам.
После того, как публичный ключ Е будет передан в шифратор 1, отправитель может передавать в шифратор 1 исходное сообщение X, подлежащее передачи по открытым каналам 7 получателю. При этом шифратор 1, получая сообщение X, генерирует зашифрованные порции информации (шифрограммы) S, которые передает посредством узла передачи 2 через открытые каналы 7 на устройство получателя 8. Устройство получателя 8 принимает шифрограммы S и передает в дешифратор 9. Дешифратор 9, имея секретный ключ D, и шифрограмму S, формирует расшифрованную порцию исходного сообщения X, которую передает получателю.
Также передаваемые шифрограммы S могут быть перехвачены устройством криптоаналитика 4. Устройство криптоаналитика 4 получает шифрограммы S и передает их в блок криптоанализа 6. Далее по описанной ранее схеме криптоаналитик производит попытки подбора исходных параметров для блока формирования ключей 5 с целью подбора секретного ключа Dx, который должен быть передан на дешифратор 3 с целью получения порций сообщения Хх, соответствующих порциям исходного сообщения X. Соответственно, для криптосистемы, в которой исходные параметры генерации ключей выбраны в соответствии с описанными ранее рекомендациями, процесс поиска подходящего ключа Dx будет нецелесообразен по вычислительной сложности, либо по доступным ресурсам.