Комментарии 22
Можно добавить только, что Ади Шамир — S из RSA.
Про 42 отсылка понятна. А вот откуда взялось 73?
Вы не поверите, но RAID5/6 — это частный случай erasure coding, для произвольных порогов существуют схемы типа кодов Рида-Соломона-Коши, и сводятся они к составлению и решению системы линейных уравнений в конечных полях, т.е. в сущности то же решение, только чуть по другому сформулированное
Просто, согласно вике, код Рида — Соломона был изобретён в 1960 году. Зачем после этого схема Шамира в 1979 — не ясно.
(ладно еще законы Бойля — Мариотта, Шарля и Гей-Люссака — общее уравнение вывели последним. Но тут частный случай описанный позже имеет фамилию)
Рейды ладно, позже похоже появились. Хотя я думал что они ровесники магнитным накопителям, но похоже ошибся.
Если верить этой статье, то схема Шамира на самом деле и есть частный случай кодов Рида-Соломона, так что вполне возможно, что Шамир просто разработал свою схему независимо. Правда, как написал выше mrsantak он еще и строго доказал, что в его схеме знание N-1 из N частей не облегчает подбор секрета, а Рид и Соломон вроде не заморачивались на эту тему, так что научная новизна в его работе точно есть. Кстати, в той же статье есть и идеи как сделать схему Шамира более устойчивой к ситуациям когда кто-то подсовывает заведомо неверные куски, либо уменьшить амплификацию данных при разделении секрета ценой уменьшения секьюрности. Более подробно это разжевано здесь (там как раз вопрос был чем же отличаются коды Рида-Соломона от схемы Шамира с точки зрения безопасности)
С тех пор что-то поменялось?
А в чём проблема использовать Шамира для больших данных? Например, секрет размером в 1Мб, чанк в 128кб. Я не думаю, что современные компьютеры взорвутся от решения уравнений с 128кб числами.
Вообще это довольно типично для всех криптоалгоритмов: блочные шифры работают с блоками фиксированного размера, асимметричные схемы имеют предел длины подписываемого или шифруемого сообщения.
Поэтому блочные шифры каскадируются разными режимами, типа CBC, CTR и так далее; криптоподпись оперирует хэшом от изначального сообщения, а шифрование зашифровывает симметричный ключ, либо подписывает параметры DH.
В вот только что сделал число в питоне в 1454113 знаков (десятчных). Я его поделил на 17, это заняло примерно пол-секунды (без привлечения numpy). Если программа будет 30-40с тупить над решением уравнений никого это не смутит. Мне кажется, ограничения в этом месте весьма искуственные и не cpu/memory bound.
Если программа будет 30-40с тупить над решением уравнений никого это не смутит. Мне кажется, ограничения в этом месте весьма искуственные и не cpu/memory bound.Это «никого» — очень смелое обобщение. Если для обработки всего полутора мегабайт секретных данных нужны десятки секунд, то как раз этот предел по CPU уже осязаем.
Вообще этот вопрос аналогичен вопросу: «почему бы не использовать RSA с огромными ключами для прямого шифрования сообщения целиком?». Как и тут — можно, но не нужно.
RSA здесь не абсолютно лишний по той простой причине, что для одноразовых блокнотов окромя канала также потребуется некий бессмертный абсолютно честный агент, самолёт и парашют для доставки агента, наручники и бронированый кейс с, собственно, одноразовым блокнотом. Очевидно, что это решение несколько дороже, хотя и есть возможность использовать его в условиях одностороннего канала.
И да, эта криптосистема не является абсолютно юзабельной.
Схема разделения секрета Шамира