id: Гость   вход   регистрация
текущее время 21:24 19/04/2024
создать
просмотр
редакции
ссылки

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


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


Алгоритм разделения секрета, реализованный в PGP, называется полиномиальной интерполяцией ЛаГранжа (еще известный как схема Блейкли-Шамира) и действует побайтно. Он рассматривает каждый байт в конечном поле F256. Для каждого байта y0, разделяемого между участниками от 1 до n, он формирует полиномиальное P, проходящее через точки (x0, y0), (1, y1), (2, y2), ... , (n, yn). Пусть m будет числом людей, которые могут восстановить секрет. Случайным образом выбираются y1, ..., ym, а остальные y исходят из того, что P должно быть полиномиальным степени m. Предельным количеством долей в этом случае является 255, но этого должно быть достаточно.

Проблемы


В описанном алгоритме нет ничего дурного. Если генератор случайных чисел надежен, алгоритм дает свойство совершенной секретности (perfect secrecy): без нужного количества долей невозможно сказать ничего определенного о содержании секрета, он может принимать любое значение в зависимости от отсутствующих долей. Возможно, по этой причине в PGP реализован только один такой алгоритм.


Единственная проблема с разделением секрета подобного типа в том, что [в PGP] он применяется для разделения закрытых ключей. Разделенный таким методом ключ перед использование требуется восстановить: если хранители хотят что-то подписать, они должны собраться вместе и загрузить в один компьютер все свои доли и парольные фразы. Это создает серьезный риск безопасности: по завершении всей операции они должны убедиться, что вся информация тщательно уничтожена. Если они решат реконструировать ключ на компьютере одного из хранителей, он сможет с легкостью модифицировать свою версию PGP, чтобы скрытно сохранить все доли и введенные парольные фразы.


Существуют более удачные схемы, где ключ можно разделить на части и применять без необходимости реконструировать его. Для RSA и m=n простой метод состоит в нахождении долей S1, S2, ..., Sn по S1 + S2 + ... + Sn = e mod φ(n). Чтобы рассчитать X = Me mod φ(n), все участники вычисляют Xi = MSi mod φ(n) и совместно восстанавливают X = X1X2 ∗ ... ∗ Xn mod φ(n).


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


Назад | Дальше


 
— Logioniz (03/01/2013 17:52)   <#>
Если я правильно понял, то в схеме RSA при разделении секрета на S1 + S2 + ... + Sn = e, число e – это секретный ключ расшифрования. Тогда X = M^e (mod n), Xi = M^si (mod n) и при совместном восстановлении X = X1*X2...Xn (mod n), т.е. модуль не правильно указан. Правильно указан модуль при разделении секрета S1 + S2 + ... + Sn = e (mod phi(n)).
— Logioniz (03/01/2013 18:00)   <#>
ой, буква n уже занята) я имел ввиду, что модуль должен быть равен p*q, где p,q – простые числа и соответственно в разделении секрета S1 + S2 + ... + Sn = e (mod phi(p*q))
— Гость (03/01/2013 22:38)   <#>
Для разделения тайных ключей следует использовать специальные решения для PK-алгоритмов, позволяющих использовать доли без потребности воссоздавать секрет.

Скорее всё же не "тайных", а "секретных".
Или же под "PK-алгоритмов" имеются в виду не "Public Key Algorithms"?
Так вроде бы как в "PK" использованы латинские буквы :)
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3