Разделение секрета Шамира (SSS)

Полностью браузерная реализация схемы разделения секрета Ади Шамира 1979 года. Выберите, сколько частей создать (N до 255) и сколько нужно для восстановления (K — порог). Распределите части между людьми, устройствами или банковскими ячейками. Пока K из них уцелеют — секрет восстановим; с меньшим K секрет математически неотличим от случайного шума.

Как пользоваться

1
Выберите N и K

Сколько частей и сколько нужно для восстановления. Типичные: 2-из-3 для личного, 3-из-5 для команды, 5-из-7 для эскроу.

2
Введите секрет

Мастер-пароль, seed-фраза, ключ — до нескольких сотен байт.

3
Распределите части

Каждую часть — отдельному человеку, устройству, локации.

4
Восстановите при необходимости

Соберите K частей, вставьте в Объединить — секрет восстановлен.

Разделите мастер-пароль или seed-фразу на N частей — любые K восстанавливают, меньше не дают ничего

Получите N частей. Любые K из них восстановят секрет. Меньше K не дают ничего — даже частичной информации.
Все части ниже относятся к одному набору. Повторное разделение создаёт НОВЫЙ набор, а прежние части перестают работать — восстановить секрет можно только из частей одного набора.

Что делает схема Шамира

  • Безусловная (information-theoretic) стойкость: меньше K частей дают НИЧЕГО о секрете — даже его длины.
  • Каждая часть содержит небольшой заголовок (версия, порог, идентификатор набора) плюс 4-байтовую метку целостности, поэтому при объединении инструмент может проверить корректность восстановления и чётко указать на несовпадающие или недостаточные части.
  • Стандартная байтовая схема над GF(2⁸) — та же алгебра, что в AES, проверенная десятилетиями.
  • Распределите части между людьми, устройствами, географическими локациями. Восстановление требует только K из них.
  • Эта реализация НЕ добавляет пароль поверх — части САМИ являются защитой. Если часть утекает, вы теряете долю запаса.
Скопировано
Не знаешь, что попробовать?
500+ инструментов — открой сюрприз
🎲 Сюрприз

Возможности

Информационно-теоретическая стойкость
В отличие от шифрования, Шамир даёт идеальную секретность: K−1 частей не несут никакой информации о секрете.
GF(2⁸) побайтово
Каждый байт делится независимо с той же алгеброй конечного поля, что используется в AES — проверенной, быстрой и стандартной.
До 255 частей
Разделите 2-из-3 для семейного бэкапа, 3-из-5 для эскроу ключей в компании, или любое (K, N) до N = 255.
Проверенное восстановление
Встроенная метка целостности означает, что при объединении инструмент подтверждает точное восстановление секрета — и выдаёт понятную ошибку для несовпадающих, недостаточных или частей из разных наборов вместо возврата бесшумного мусора.
Криптостойкая случайность
Коэффициенты берутся из криптостойкого случайного источника вашего браузера — никакого Math.random.
Работает в вашем браузере
Разделение и объединение выполняются во вкладке браузера через Web Crypto API. Интерполяция полинома над GF(2⁸) вычисляется на стороне клиента в JavaScript — для этого инструмента не существует эндпоинтов /split или /combine, алгоритм поставляется вместе со страницей.

Частые вопросы

Чем это отличается от шифрования с раздачей пароля?

Шифрование делит секрет на шифротекст + ключ — кто имеет оба, имеет всё. Шамир делит сам секрет на N частей; нужны K, и K−1 не дают НИЧЕГО математически (а не только вычислительно).

Какое (K, N) хорошее?

2-из-3 — частый дефолт для физлица. 3-из-5 для команды. Больше K — меньше риск компрометации; больше N — лучше выживаемость при потерях.

Можно доверять реализации?

Используется стандартная байтовая схема Шамира над GF(2⁸) — та же конструкция, что в Hashicorp Vault, Trezor SLIP-0039 (шардированные бэкапы BIP-39) и большинстве других продакшен-реализаций SSS. Разделение и объединение выполняются в вашем браузере через Web Crypto API.

А если часть потеряна?

Пока остаются хотя бы K частей, секрет восстановим. Распределяйте N > K для запаса.

А если часть утекла к атакующему?

Если утекло меньше K — секрет в безопасности. Стоит сменить секрет и распределить новые части.

Какой формат частей используется?

В основе лежит каноническая байтовая схема над GF(2⁸) со стандартным редукционным полиномом 0x11b. Каждая часть упакована в небольшой самоописывающийся контейнер (версия, порог, идентификатор набора и метка целостности), чтобы инструмент мог проверить восстановление и обнаружить несовпадающие части — восстанавливайте части этим инструментом, а не сырой библиотекой GF(256).

💡 Хотите, чтобы мы улучшили этот инструмент лично для вас?

Мы можем! Просто отправьте нам сообщение с вашим пожеланием. Если хотите обсудить детали — оставьте свою почту, и мы с вами свяжемся. Можно анонимно.

Как вы оцениваете этот инструмент?

Спасибо за вашу оценку!
Хотите рассказать подробнее? Оставьте комментарий!
Спасибо! Ваш комментарий появится после модерации.
Опубликовано Обновлено Авторы: