64
М. В. Белоусов, A. B. Александров
Алексей Викторович Александров
Сведения об авторе
канд. физ.-мат. наук, доцент; Владимирский государственный университет им. А. Г. и Н. Г. Столетовых, кафедра информатики и защиты информации; E-mail: [email protected]
Рекомендована ВлГУ
Поступила в редакцию 17.04.12 г.
УДК 519.6
М. В. Белоусов, A. B. Александров
ОСОБЕННОСТИ РЕАЛИЗАЦИИ SMT-ПРОТОКОЛА НА БАЗЕ ЯЗЫКА PYTHON 3
Описана реализация 8МТ-протокола на основе схемы разделения секретного сообщения Шамира, исследованы характеристики протокола, такие как алгоритмическая сложность, скорость работы и надежность.
Ключевые слова: SMT-протокол, схема разделения секрета, модель Долева—Яо.
Рассмотрим реализацию SMT-протокола (Secure Message Transmission), принадлежащего к группе 0-секретных протоколов передачи сообщений [1], в обобщенном канале связи.
Под обобщенным каналом связи понимается ориентированный граф с множеством вершин и путей (каналов), таких что:
1) все пути Q (i = 1,..., n) попарно не пересекаются, за исключением оконечных точек A
и B, задающих направление передачи данных в канале связи;
2) П(A, B, C, S) — протокол обмена сообщениями между вершинами A и B. В рамках протокола секретное сообщение (секрет) S должен быть передан в точку B по обобщенному каналу C = {Q,..., Cn}.
3) секрет S является элементом числового поля GFp (p—большое простое число), изначально находящимся в точке A ;
4) подчиненный модели безопасности Долева—Яо [2] протокол предусматривает противодействие противника на протяжении всей работы.
В классических вариациях SMT-протокола всегда можно выделить два этапа: разделение сообщения S на криптографические части — тени Share1(S), ..., Sharen(S) с отправкой Share(S) по каналам Ci, и сборка сообщения S из необходимого набора теней в другой точке сетевого графа.
Свойства конфиденциальности SMT-протоколов изучены в работах [1, 3, 4] для различных реализаций схем разделения и сборки секрета из теней. В частности, в статье [1] вводится понятие надежности. Надежность работы протокола П( A, B, C, S) определяется вероятностью P того, что по окончании работы протокола переданное и полученное сообщения одинаковы:
В работе [4] для контроля надежности П(A, B, C, S) предлагается дополнительно использовать обратный канал связи (feedback).
В рамках нашей реализации протокола схема разделения секрета представляет собой классическую (п,п)-пороговую схему, позволяющую вычислять теневые копии для больших
SA = SB, P ~1.
(1)
Особенности реализации SMT-протокола на базе языка Python 3 65
значений n. Схема разделения секрета Шамира использует многочлены степени n-1 над полем GFp [5]:
Pn-i(x) = an-i*n~l +... + a1x + a0, a0 = S, (2)
an-1a1 e randGFp; x e GFp.
Долей секрета Sharej(S) является упорядоченная пара:
Sharel(S) = (i, pn-1 (i)), i ^ 0 .
Теорема о полиномиальной интерполяции для многочленов (2) над полем GFp сохраняет свою силу, поэтому при наличии совокупности попарно различных теней мощности n секрет S восстанавливается по интерполяционной формуле Лагранжа:
pn (x)= П
i=1,j
Обратимся к деталям реализации протокола П( A, B, C, S) на базе языка Python.
Для генерации и хранения теней секрета применяется тип dictionary, позволяющий использовать индексы на всем диапазоне bigint. Это позволяет фактически ограничивать количество генерируемых теней лишь объемом оперативной памяти [6] и достигать n~500 при приемлемых значениях времени работы протокола.
В протоколе используются основные математические операции над полем GFp, реализованные в рамках языка Python, такие как сложение, умножение Карацубы и быстрое возведение в степень. Анализ быстродействия данных операций на числах различной длины позволил определить оптимальные по скорости выполнения реализации. Для качественной генерации случайных коэффициентов в выражении (2) использован алгоритм Mersenne twister
19937
(MT19937), его период равен 2 -1. Алгоритм обладает достаточно высокими показателями времени генерации, например, время генерации at (i = n-1,..., 1) в (2) относительно линейных конгруэнтных генераторов меньше приблизительно в 2—2,5 раза.
Функциональность реализованного базового SMT-протокола фактически ограничена предоставленными ресурсами оперативной памяти для хранения теней и элементов поля GFp в процессе вычислений, а также вычислительными ресурсами процессора.
Поскольку основная часть протокола сводится к операциям разделения и сборки секретного сообщения, основные показатели быстродействия алгоритма в целом зависят от этих операций. Теоретические оценки вычислительной сложности операций разделения и сборки в
нашем случае — O(log2 n) и O(n ) соответственно.
Рассмотрим надежность работы протокола. Введение обратного канала для контроля надежности может существенно понижать конфиденциальные свойства протокола [4]. Поэтому нами предложено использовать хеш-функции как для контроля целостности теней секрета, так и для контроля сборки значения S в точке B. В частности, протокол П(A, B, C, S) завершает свою работу пересылкой значения хеш-функции секрета h(S) по всем доступным каналам Ci либо пересылкой значений секрета и тени S+Sharei по соответствующим каналам передачи теней Ci. При этом, очевидно, вероятность P в (1) зависит от криптографических свойств применяемой хеш-функции:
P [(h(SA) = h(SB)) — (SA = SB)] = 1 - P(h).
66 М. В. Белоусов, А. В. Александров
В правой части равенства Р(И) — вероятность появления коллизии для выбранной крипто-
Для вариации протокола получены значения времени (см. рисунок, кривая 1; кривая 2 — Л(£г), 3 — Ь(5)) и алгоритмической сложности сборки секрета в зависимости от значения п, соответствующие указанным выше теоретическим оценкам, представленны на рисунке.
СПИСОК ЛИТЕРАТУРЫ
1. Dolev D., Dwork C. Perfectly Secure Message Transmission // Proc. 31st Annu. Symp. on Found. of Comput. Sci. 1990. P. 36—45.
2. Dolev D., Yao A. On the Security of Public Key Protocols // IEEE Transact. on Inform. Theory. 1983. Vol. 29, N 2. P. 198—208.
3. Kurosawa K. General Error Decodable Secret Sharing Scheme and Its Application. Cryptology ePrint Archive Report/ 2009. P. 263.
4. Yang Q., Desmedt Y. Cryptanalysis of Secure Message Transmission Protocols with Feedback // ICITS. 2009. P. 159—176.
5. ShamirА. How to share a secret // Communication of ACM. 1979. Vol. 22, N 11. P. 612—613.
6. Python Core Development [Электронный ресурс]: <http://www.python.org/dev/peps/pep-0237/>.
Сведения об авторах
Максим Васильевич Белоусов — аспирант; Владимирский государственный университет им. А. Г. и
Н. Г. Столетовых, кафедра информатики и защиты информации; E-mail: [email protected]
Алексей Викторович Александров — канд. физ.-мат. наук, доцент; Владимирский государственный университет им. А. Г. и Н. Г. Столетовых, кафедра информатики и защиты информации; E-mail: [email protected]
Рекомендована ВлГУ Поступила в редакцию
17.04.12 г.