Схемы разделения секрета для произвольных структур доступа

Материал из testwiki
Перейти к навигации Перейти к поиску

Схемы разделения секрета для произвольных структур доступа (англ. Secret sharing with generalized access structure) — схемы разделения секрета, которые позволяют задать произвольный набор групп участников (квалифицированных подмножеств), имеющих возможность восстановить секрет (структуру доступа).

История

В 1979 году израильский криптоаналитик Ади Шамир предложил пороговую схему разделения секрета между n сторонами, обладающую следующими свойствами:

  • Для восстановления секрета достаточно k и больше сторон.
  • Никакие k1 и меньше сторон не смогут получить никакой информации о секрете.[1]

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

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

Японские ученые Мицуро Ито, Акиро Саито и Такао Нишизеки первые начали изучать разделение секрета для произвольных структур доступа и в 1987 году предложили свою схему.[2] Их мысль развили Джош Бенало и Джерри Лейхтер, предложив в 1988 году схему разделения для монотонных структур.[3] В 1989 Эрнест Бриккелл предложил схему, в которой участникам раздаются не доли секрета, а их линейные комбинации.[4]

Определение используемых терминов

Дилер — участник процедуры (протокола), который, зная секрет, вычисляет доли секрета и раздаёт эти доли остальным участникам.

Квалифицированное подмножество — множество участников группы, для которого разрешено восстановление секрета.

Примером, иллюстрирующим появление квалифицированных подмножеств, может служить разделение секрета между управленцами. В случае, если секрет может быть восстановлен либо всеми тремя управленцами, либо любым управленцем и любым вице-президентом, либо президентом в одиночку,[1] квалифицированными подмножествами будут президент, вице-президент и управленец, или любые три управленца.

Структура доступа — перечисление квалифицированного и неквалифицированных подмножеств.

Пусть A — множество участников группы, n — количество участников группы, 2[n] — множество, состоящее из всех возможных подмножеств участников группы. Пусть Γ — множество, состоящее из подмножеств участников, которым разрешено восстановление секрета (квалифицированные множества участников), Δ — множество, состоящее из подмножеств участников, которые не могут восстановить секрет. Структура доступа обозначается как (Γ,Δ).

Структура доступа называется монотонной, если все надмножества квалифицированных подмножеств также входят в Γ, то есть AΓ,ABPBΓ

Предположим (Γ,Δ) — структура доступа на A . BΓназывают минимальным квалифицированным подмножеством, если C∉Γ всегда, когда CB. Множество минимальных квалифицированных подмножеств Γ обозначается как Γmin и называется базисом Γ. Минимальное квалифицированное подмножество однозначно задает структуру доступа.

Схема Бенало-Лейхтера

Пусть задана монотонная структура доступа A и Γmin— множество минимальных квалифицированных подмножеств, соответствующее A. Пусть Γmin={A1,A2,...,Am} . Для каждого Ai вычисляются доли секрета для участников этого подмножества si1,si2,...,si|A| с помощью любой (|Ai|,|Ai|) — пороговой схемы разделения секрета.

Доля секрета si,j передается соответствующему участнику. В результате каждый участник получает набор долей секрета. Восстановление секрета происходит по выбранной (n, n)-пороговой схеме.[3]

Пример:

Γmin={{1,2,3},{1,4},{2,4},{3,4}}

A1={1,2,3}     A2={1,4}     A3={2,4}     A4={3,4}

Здесь, например, P4 является вторым в A2,A3,A4, поэтому он получает доли секрета s2,2,s3,2,s4,2

Аналогично для остальных участников

P1s1,1,s2,1  P2s1,2,s3,1  P3s1,3,s4,1  

Недостаток данной схемы — возрастающий объём долей секрета для каждого участника при увеличении Γmin[5][6].

Схема Ито-Саито-Нишизеки

Ито, Саито, Нишизеки представили так называемую технику кумулятивного массива для монотонной структуры доступа.[2]

Пусть A — монотонная структура доступа размером n и пусть A1,...,Am — соответствующие ей максимальные неквалифицированные подмножества участников.

Кумулятивный массив структуры доступа A есть матрица размеров n×m (Ci,jA)1in,1jm, где Ci,jA={0,если iAj1,если i∉Aj и обозначается как CA. То есть столбцы матрицы отвечают неквалифицированным подмножествам, а значение по строкам внутри столбца будет единицей, если элемент не входит в данное подмножество.

В данной схеме можно использовать любую (m,m) — пороговую схему разделения секрета с секретом S и соответствующими долями s1,...,sm

Доли I1,...,In соответствующие секрету S будут определятся как множество sj: Ii={sj|Ci,jA=1}

Восстановление секрета происходит по выбранной (m,m) — пороговой схеме.

Сложность реализации данной схемы, достигнутая в 2016 году составляет O(n).[7]

Пример:

Пусть n=4, Γ={{1,2},{3,4},{1,2,3},{1,2,4},{1,3,4},{2,3,4}}.

Соответствующее A множество минимальных квалифицированных подмножеств Γmin={{1,2},{3,4}}

В этом случае Δmax={{1,3},{1,4},{2,3},{2,4}} и m=4.

Кумулятивный массив структуры доступа A имеет вид CA=(0011110001011010)

Доли секрета участников равны I1={s3,s4};  I2={s1,s2};  I3={s2,s4};  I4={s1,s3}

Восстановление секрета аналогично восстановлению секрета в (4,4) — пороговой схеме Шамира.

Линейная схема разделения секрета Брикелла

Для структуры доступа A и набора участников P={P1,...,Pn} составляется матрица M размера n×m , в которой строка M[i] длины m ассоциируется с участником i. Для подмножества участников xΓ, которому соответствует набор строк матрицы M — Mx, должно выполняться условие, что вектор (1,0,...,0) принадлежит линейной оболочке, натянутой на Mx.

Дилер выбирает вектор r=(r0,...,rm), где разделяемый секрет s=r0. Доля секрета участника i: si=M[i]r

Восстановление секрета.

Выбирается вектор α, длины m, αx — вектор, составленный из координат α, соответствующих набору участников xΓ.

Для каждого xΓ должно выполняться условие: αxMx=(1,0,....,0). Тогда секрет можно восстановить по формуле:

ixsiαi=ix(M[i]r)αi=(ixαiM[i])r=(1,0,...,0)r=s[4]

Пример:

Множество минимальных квалифицированных подмножество Γ={{1,2,3},{1,4}}.

Подходящая матрица:

(010101011110)

M удовлетворяет требованию схемы:

Для {1,2,3}: (1,0,0)=(0,1,0)+(1,0,1)+(0,1,1)

Для {1,4}: (1,0,0)=(0,1,0)+(1,1,0)

Доли секрета каждого участника:

P1r1;P2s+r2;P3r1r2;P4s+r1

Восстановление секрета:

Для восстановления секрета выбирается α=(1,1,1,1)

Тогда для x={1,2,3}: αx=(1,1,1)

(1,1,1)(010101011)=(1,0,0)

А для x={1,4}: αx=(1,1)

(1,1)(010110)=(1,0,0)

Применение

Данные схемы применяются в протоколах условного раскрытия секрета (англ. conditional disclosure of secrets, CDS)[8], безопасных распределенных вычислениях[9][10][11], задачах распределения ключей[12] и схемах аутентификации нескольких приемников[13].

Примечания

Шаблон:Примечания