Interested Article - Схема Миньотта

Схема Миньотта — пороговая схема разделения секрета , построенная с использованием простых чисел . Позволяет разделить секрет (число) между сторонами таким образом, что его смогут восстановить любые участников, но участников восстановить секрет уже не смогут. Схема основана на китайской теореме об остатках .

История

Впервые схема была предложена в 1982 году французским учёным Морисом Миньоттом в качестве одного из вариантов использования -пороговой схемы, описанной Ади Шамиром . Сам Шамир предлагал решение с применением интерполяции полинома на конечном поле, где секретом являлся сам полином. Миньотт же смог предоставить более простое решение, заложив в основу модулярный подход - секретом является некоторое число, а частичным секретом - его вычет по некоторому модулю. Доработанной схемой Миньотта является схема Асмута-Блума . В обеих схемах для восстановления секрета используется китайская теорема об остатках, формулировка которой определяет единственное решение (секрет) .

Схема разделения секрета

Китайская теорема об остатках

В основе схемы лежит использование китайской теоремы об остатках, которая позволяет пользователям, имеющим некоторую долю секрета, восстановить сам секрет, причём единственным образом. Существует несколько версий теоремы, назовём следующую общей: Пусть . Тогда система уравнений

имеет решения в тогда и только тогда, когда . Более того, если приведенная система имеет решения в , она имеет единственное решение в определяет наименьшее общее кратное . В случае, если , китайскую теорему об остатках называют стандартной .

Пороговые схемы разделения секрета

Допустим, имеется n пользователей , пронумерованных от до , и набор групп , где - все подгруппы группы . Фактически, -схема разделения секрета – это метод генерации секретов таких, что:

  • (корректность) Для любого , проблема нахождения при наличии всех «простая»
  • (безопасность) Для любого , проблема нахождения является «труднообрабатываемой»

будем называть структурой доступа, – секретом, а – тенями . Наборы элементов из назовём группами авторизации . В идеальной схеме разделения секрета тени любой группы, не являющейся группой авторизации, не даёт информации (с точки зрения теории информации) о секрете. Доказано, что в любой идеальной схеме разделения секрета размер каждой из теней должен быть не меньше размера самого секрета. Естественным является условие о том, что структура доступа должна быть монотонной, то есть: . Любая структура доступа хорошо описывается с помощью минимального набора групп авторизации: . Можно описать и структуру доступа, не обладающую свойствами авторизации: . Её хорошо описывает максимальный набор групп "неавторизации":

В первых схемах разделения секрета только количество участников являлось важным при восстановлении секрета. Такие схемы были названы пороговыми схемами разделения секрета. Пусть , тогда структура доступа называется -пороговой структурой доступа.

Стоит учесть также, что для -пороговых структур доступа.:

.

Все -схемы разделения секрета также назовём -пороговыми схемами разделения секрета .

Последовательность Миньотта

Пороговая схема разделения секрета Миньотта использует специальные последовательности чисел, названные последовательностями Миньотта. Пусть – целое, , и . -последовательность Миньотта – последовательность взаимно простых положительных таких, что Последнее утверждение также равносильно следующему:

Алгоритм

Имея открытый ключ-последовательность Миньотта, схема работает так:

  1. Секрет выбирается, как случайное число такое, что , где . Другими словами, секрет должен находиться в промежутке между и
  2. Доли вычисляются, как , для всех
  3. Имея различных теней , можно получить секрет , используя стандартный вариант китайской теоремы об остатках – им будет единственное решение по модулю системы:

Секретом является решение приведенной выше системы, более того, лежит в пределах , т.к. . С другой стороны, имея всего различных теней , можно сказать, что , где – единственное решение по модулю исходной системы (в данном случае: . Для того, чтобы получить приемлемый уровень безопасности, должны быть использованы последовательности Миньотта с большим значением Очевидно, что схема Миньотта не обладает значительной криптографической стойкостью , однако может оказаться удобной в приложениях, где компактность теней является решающим фактором.

Пример

Допустим, необходимо разделить секрет между пользователями так, чтобы любые могли его восстановить.

  • Выбираем последовательность Миньотта .
  • Вычисляем для данной последовательности , .
  • Выбираем такое, что , например, .
  • Вычисляем доли: :
  • Для восстановления секрета решим систему уравнений для теней (предположим, секрет восстанавливают участники 1-5):

.

Из формулировки китайской теоремы об остатках знаем, что решение будет единственным.

Модификации схемы Миньотта

Обобщённая последовательность Миньотта

Для данной пороговой схемы элементы последовательности не обязательно являются взаимно простыми. Пусть – целое, . Обобщённой -последовательностью Миньотта называют такую последовательность положительных целых чисел, что . Нетрудно видеть, что любая -последовательность Миньотта является обобщённой -последовательностью Миньотта. Более того, если умножить каждый элемент обобщённой последовательности на фиксированный элемент , также получим обобщённую -последовательность Миньотта. Расширенная схема Миньотта работает так же, как и обыкновенная для и .В данном случае для нахождения секрета необходимо использовать обобщённый вариант китайской теоремы об остатках.

Взвешенное разделение секрета

Схема также может быть применена для реализации схемы со взвешенным разделением секрета. В равновесных схемах, которой и является классическая схема Миньотта, каждый участник получает тень одинаковой ценности. Однако, схему можно доработать так, чтобы участникам с тенью большего веса требовалось меньше других теней, нежели участникам с тенью меньшего веса.

Пусть - секрет, где - веса теней пользователей. Сгенерируем -последовательность Миньотта, где . Тогда , где - произвольное разбиение множества такое, что

Можно заметить, что существует однозначное соответствие между размером и весом тени: например, бит — это тень весом 1, тень весом будет весить битов. Реализация схемы Миньотта со взвешенным разделением секрета не является целесообразной, так как генерация последовательности Миньотта и взвешенной пороговой структуры доступа является трудо- и ресурсоемкой задачей. Существуют более простые и эффективные схемы со взвешенным разделением секрета, в которых также устранена зависимость между весом и размером тени.

Аналогичные схемы

  • Схема Асмута-Блума , также основанная на китайской теореме об остатках, была впервые представлена в 1983 году. Основное отличие состоит в том, что вместо последовательности Миньотта, требующей генерации, необходимо выбрать простое число, связанную с ним последовательность из взаимно простых чисел, а также некоторое случайное число, с помощью которого шифруется секрет, и уже на основе зашифрованного секрета вычисляются тени. В схема Асмута-Блума отсутствуют некоторые недостатки, присущие схеме Миньотта:
  1. Нет ограничения на область, в которой можно выбирать секрет
  2. Набор из менее, чем теней пользователей не даёт никакой информации о секрете
  1. Предполагаем, что раскрытый вес равен , а -длина используемых чисел в битах. Также полагаем, что . Стоит отметить, что в реальных схемах .
  2. Секрет в таком случае выберем длиной битов (если он меньше, дополним его, например, путём повторения битов секрета или добавления случайных битов ).
  3. Для пользователя , обладающего весом его доли , выберем простое число длиной битов и такое, что . Простые числа выбраны в данном случае для упрощения работы алгоритма, для корректной работы схемы достаточно выбора попарно взаимно простых чисел.
  4. Вычислим и определим долю пользователя , как .
  5. При восстановлении секрета любой коллектив пользователей такой, что может составить систему уравнений:

и вычислить S, применив китайскую теорему об остатках. Так как размер составляет битов, размер произведения модулей состоит из, по меньшей мере, , можно видеть, что , пока . Именно это позволяет вычислить секрет единственным образом. Можно ослабить условие на сумму весов долей до , тогда в случае длина составляет, как минимум, , поэтому необходимо ограничить до битов. Если же это невозможно, можно сохранить работоспособность схемы, введя дополнительный элемент, модуль которого - наименьшее простое число из битов, доля элемента - . Этот элемент можно использовать, как дополнительное уравнение в приведенной выше системе, в таком случае , поэтому секрет можно будет восстановить единственным образом. В данной схеме устранён один из главных недостатков обыкновенной схемы с разделением взвешенного секрета - любую долю можно описать точкой , причём эта точка не обладает зависимостью между собственным весом и размером.


Данную схему можно также изменить для работы с несколькими секретами. Допустим, необходимо разделить секреты , каждый секрет состоит из битов. Сложим секреты вместе, получив один секрет длиной битов. Необходимо рассмотреть три случая:

  1. : Добавим случайных битов, до размера
  2. : Ничего не делаем
  3. : Введём дополнительный элемент с весом

Производительность схемы

График производительности классической и доработанной схем Миньотта с долями равного веса.
График производительности для долей разного веса.

Значительную часть времени выполнения схемы отнимает генерация последовательностей Миньотта и взаимно простых модулей. Допустим, имеются доли с весами соответственно. Общий вес долей составит , вес, необходимый для раскрытия секрета - , размер числа - битов.

  • Генерация последовательности Миньотта состоит из нескольких этапов:
  1. Генерация попарно взаимно простых . Преобладающей операцией является нахождение НОК , сложность её составляет . Для каждого нового сгенерированного числа необходимо проверить, является ли оно попарно взаимно простым с каждый из предыдущих элементов, поэтому для генерации попарно взаимно простых чисел сложность составляет .
  2. Их сортировка, её сложность составляет .
  3. Проверка условия . Сложность перемножения двух чисел длиной битов и битов составляет . Сложность проверки составит .

Таким образом, общая сложность генерации последовательности Миньотта составляет .

  • Для генерации модуля пользователю с весом необходимо перемножить чисел размера . Сложность генерации модулей составит . Таким образом, общая сложность генерации модулей также составляет .

Схема не обладает хорошей производительностью, так как возможно модифицировать её и тем самым избавиться от необходимости генерации последовательностей Миньотта. На графиках приведены результаты анализа производительности схемы, основанной на схеме Миньотта со взвешенном разделением секрета и самой схемы. Для построения графика была выбрана -пороговая схема с одним секретом, и соответственно .

Недостатки схемы

  • Не обладает криптографической стойкостью, так как даже неполное множество пользователей может предоставить некоторую информацию о секрете.
  • Не является простой в принципиальном плане или при реализации. Генерация последовательностей Миньотта и пороговых структур доступа является трудным и ресурсоемким процессом.
  • Существует ограничение на область значений, в которой можно выбирать секрет: должен находится в промежутке между и . Знание этого факта также даёт дополнительную информацию злоумышленнику.
  • Для обеспечение хорошей криптостойкости необходима генерация больших значений , что также является ресурсоемкой задачей.
  • Злоумышленник может обмануть пользователей схемы, подменив секрет.

Схемы поведения злоумышленников

выбор
выбор
выбор

Можно выделить две схемы, описывающих поведение злоумышленников в пороговых схемах: модель CDV, в которой злоумышленники знают секрет и пытаются передать другим участникам ложные данные, и модель OKS, в которой злоумышленники не знают секрета заранее. В обыкновенной схеме Миньотта один злоумышленник всегда может обмануть пользователей в модели CDV и с большой вероятностью - в модели OKS. Допустим, участники разделили секрет, и пользователь решает сжульничать. Следовательно, он должен изменить свою тень на так, чтобы . Пусть . Используя китайскую теорему об остатках, получим , то есть, представим в виде . Так как последовательность Миньотта известна, можно найти . Можно выбрать , откуда

В модели CDV злоумышленник знает секрет, поэтому используя выражение он может удостовериться в том, что (рис.1), существование гарантировано, если участников не могут определить секрет. Следовательно, злоумышленник может обмануть участников схемы с вероятностью 1. Более того, в этой модели злоумышленник может контролировать значение , вычисляя напрямую из : , где

В модели OKS, так как злоумышленник не знает секрет, он не может проверить истинность неравенств и . В таком случае он всегда может использовать . Единственный вариант, при котором обман может быть раскрыт - , откуда (рис.2) или (рис.3). Следовательно, вероятность успешного обмана составляет

Пример

Пусть . Тогда для секрета будут сгенерированы тени . Допустим, участники 1,2,3 объединили свои доли, и участник 1 хочет сжульничать. Тогда он вычисляет и изменяет свою долю так, что . В таком случае, после решения системы уравнений участники восстановят неверный секрет , также находящийся между и . При этом пользователь 1 может получить настоящий секрет:

Модификация схемы

Для того, чтобы избежать подобных махинаций, можно сделать следующее:

  • Вводится дилер, генерирующий -последовательность Миньотта . Также дилер генерирует различных простых таких, что: является достаточно большим. Секрет выбирается так, что . Долями являются . Процесс восстановления секрета проходит так же, как и в стандартной схеме Миньотта. После того, как секрет восстановлен, любой участник может определить обман путём сравнения с данными, переданными дилером. Таким образом, злоумышленник может обмануть участника с вероятностью

Примечания

  1. Maurice Mignotte, 1983, pp.371-375
  2. (англ.) . Electronic Notes in Theoretical Computer Science (2007). Дата обращения: 18 ноября 2013. Архивировано из 3 декабря 2013 года.
  3. Evangelos Kranakis, 1986, p. 9
  4. (англ.) . Proceedings of the 6th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (2004). Дата обращения: 12 декабря 2013. Архивировано из 3 декабря 2013 года.
  5. (англ.) . Electronic Notes in Theoretical Computer Science (2011). Дата обращения: 18 ноября 2013. Архивировано из 19 декабря 2012 года.

  6. C. A. Asmuth and J. Bloom, 1986, pp. 208-210
  7. (англ.) . “Al. I. Cuza” University Iasi, Romania (2009). Дата обращения: 18 ноября 2013. 10 мая 2012 года.

Литература

  • . (англ.) // Lecture Notes in Computer Science. — 1983. — Vol. 149 . — P. 371—375 . — doi : . (недоступная ссылка)
  • . (англ.) // Wiley-Teubner Series in Computer Science. — 1986. — Vol. 1 . — P. 9 .
  • . (англ.) // IEEE Transactions on Information Theory. — 1986. — Vol. 2 . — P. 208-210 .

Ссылки

  • (англ.) . Electronic Notes in Theoretical Computer Science (2007). Дата обращения: 12 декабря 2013. Архивировано из 3 декабря 2013 года.
  • (англ.) . Electronic Notes in Theoretical Computer Science (2011). Дата обращения: 12 декабря 2013. Архивировано из 19 декабря 2012 года.
  • (англ.) . “Al. I. Cuza” University Iasi, Romania (2009). Дата обращения: 12 декабря 2013.
  • (англ.) . Proceedings of the 6th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (2004). Дата обращения: 12 декабря 2013. Архивировано из 3 декабря 2013 года.
Источник —

Same as Схема Миньотта