Здавалка
Главная | Обратная связь

Вопрос 13 РАЗДЕЛЕНИЕ СЕКРЕТА



Пусть имеются два владельца сейфа и дилер, которому они оба доверяют. Код сейфа является 16-значным числом. Дилер должен сообщить каждому владельцу его часть кода так, чтобы они могли открыть его вдвоем, но не могли это сделать порознь. Если, например, дилер сообщает первому первые 8 цифр, а второму — вторые 8 цифр, то каждому из них для взлома придется перебрать не более вариантов. Гораздо эффективнее другой способ разделения секрета. Дилер выбирает два ключа из 16 цифр каждый и втайне сообщает каждому владельцу свой ключ, а сам складывает соответствующие цифры ключей по модулю 10 и закрывает сейф с помощью полученного ключа. Теперь для взлома необходимо перебрать уже вариантов.

Более интересна схема разделения секрета между N участниками так , чтобы любые K+1 участников могли восстановить секрет, но при этом никакие K участников не могли бы этого сделать.

Итак, пусть в протоколе разделения секрета имеется N участников и дилер D. Протоколы состоят из двух фаз: фазы разделения секрета и фазы восстановления секрета. На первой фазе дилер генерирует N долей секрета и по защищенным каналам посылает долю секрета участнику . На фазе восстановления секрета любое подмножество из не менее чем K+1 участника однозначно восстанавливает секрет, обмениваясь сообщениями по защищенным каналам. А любое подмножество из не более чем K участников не может восстановить секрет. Неплохо было бы, если бы каждый участник мог проверить, что его доля секрета действительно есть доля секрета . Это позволит проверить, что другой участник не пытается подсунуть ему фикцию при восстановлении секрета.

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

Участник вычисляет и убеждается, что — доля секрета , так как .

Для фазы восстановления считаем, что дилер — честный.

Всякий участник (честный) посылает каждому другому участнику свою долю секрета . Всякий честный участник может проверить, что прислал правдивую информацию. Так как честных участников не менее чем K+1, то каждый из них будет иметь не менее чем K+1 правильную долю секрета.

Имея K+1 узел , для полинома степени K можно построить интерполяционный многочлен Лагранжа и найти затем секрет . Если знать меньше узлов чем K , то найти однозначно коэффициент полинома невозможно.

Вопрос 14







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.