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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Векторная схема разделения секрета, или схема Блэкли (англ. Blakley's scheme), — схема разделения секрета между сторонами, основанная на использовании точек многомерного пространства. Предложена Джорджем Блэкли в 1979 году. Схема Блэкли позволяет создать (t, n)-пороговое разделение секрета для любых t, n.

Идея[править | править код]

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

Одна доля Две доли пересекаются вдоль плоскости Три доли пересекаются в точке
Пример схемы Блэкли в трёх измерениях: каждая доля секрета — это плоскость, а секрет — это одна из координат точки пересечения плоскостей. Двух плоскостей недостаточно для определения точки пересечения.

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

Описание[править | править код]

Генерация точки[править | править код]

Пусть нужно реализовать -пороговую схему, то есть секрет разделить между сторонами так, чтобы любые из них могли восстановить секрет. Для этого выбирается большое простое число , по модулю которого будет строиться поле . Случайным образом дилер[кто?] выбирает числа . Тем самым задается точка в -мерном пространстве, первая координата которой является секретом.

Раздача секрета[править | править код]

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

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

Восстановление секрета[править | править код]

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

Решение системы даёт точку в -мерном пространстве, первая координата которой и есть разделяемый секрет. Систему можно решать любым известным способом, например, методом Гаусса, но при этом необходимо проводить вычисления в поле .

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

Свойства[править | править код]

Несовершенная схема: Количество участника увеличит, номер возможностей для секретной точкой снизит. Например, для t − 1 участников знают линии, в которой лежит секретная точка.

Отсек схемы: Участники  делятся на подгруппы называемых отсеков. Чтобы получить секрет, кворум отсеков требуется, но для отсек участвовать в кворуме, другой кворум акций требуется.

Многоуровневые схемы: Участники делятся на две упорядоченных уровнях. Для восстановления секрет меньше кворума требуется более высокий уровень. Кроме того, каждый высший уровнь участники может заменить на нижнего уровня участники.

Некоторые участники не могут получить секрет.

Пример[править | править код]

Пусть нужно разделить секрет «6» между 4 сторонами, при этом любые 3 должны иметь возможность восстановить его. Иными словами, необходимо реализовать -пороговое разделение секрета.

Для этого зададим точку в 3-мерном пространстве, например, . Первая координата точки и есть разделяемый секрет, 4 и 2 — некоторые случайные числа. При этом будем работать в поле , то есть все числа будут вычисляться, как остатки от деления на .

Каждой стороне необходимо дать уравнение плоскости, проходящей через заданную точку. В 3-мерном пространстве уравнение плоскости задается с помощью 4 параметров: , где  — координаты, а  — параметры, раздаваемые сторонам. Для выбора параметров можно поступить следующим образом: величины выбрать случайным образом (при этом необходимо, чтобы полученные плоскости не оказались компланарными), а свободный коэффициент для каждой стороны вычислять по заданной точке и выбранным коэффициентам.

Например, выберем параметры следующим образом:

1-я сторона: ,
2-я сторона: ,
3-я сторона: ,
4-я сторона: .

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

После этого доли секрета вместе с числом раздаются сторонам.

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

Систему можно решать любым способом, не забывая при этом, что вычисления ведутся в поле . Несложно убедиться, что точка является решением системы, её первая координата «6» и есть разделяемый секрет.

Литература[править | править код]

  • Шнайер Б. 23.2 Алгоритмы разделения секрета. Векторная схема // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 589. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  • Blakley G. R. Safeguarding cryptographic keys (англ.) // Proceedings of the 1979 AFIPS National Computer Conference — Montvale: AFIPS Press, 1979. — P. 313—317. — doi:10.1109/AFIPS.1979.98