Научная статья на тему 'Особенности реализации SMT-протокола на базе языка Python 3'

Особенности реализации SMT-протокола на базе языка Python 3 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
260
49
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
SMT-ПРОТОКОЛ / СХЕМА РАЗДЕЛЕНИЯ СЕКРЕТА / МОДЕЛЬ ДОЛЕВА—ЯО / SMT-PROTOCOL / SECRET DIVISION DIAGRAM / DOLEV—YAO MODEL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Белоусов Максим Васильевич, Александров Алексей Викторович

Описана реализация SMT-протокола на основе схемы разделения секретного сообщения Шамира, исследованы характеристики протокола, такие как алгоритмическая сложность, скорость работы и надежность.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Features of the SMT-Protocol Implementation Based on Python 3

Implementation of the SMT-protocol on the base of Shamir secret sharing scheme is described. Several characteristics of the protocol, such as algorithmic complexity, speed, and safety are studied.

Текст научной работы на тему «Особенности реализации SMT-протокола на базе языка Python 3»

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

i Надоели баннеры? Вы всегда можете отключить рекламу.