# Схема разделения секрета Шамира

Разделение секрета на n долей, где любые k (порог) восстанавливают его — схема k-из-n Шамира над GF(256). Чистая локальная криптография (crypto.randomBytes для коэффициентов), без сети. Разделите пароль/ключ/фразу между несколькими людьми и восстановите любыми k. Только конфиденциальность, без аутентичности.

> Каноническая страница: https://elysiatools.com/ru/tools/shamir-secret-sharing

- **Категория:** Security

- **Ключевые слова:** Шамир, разделение секрета, порог, k-из-n, разделить, восстановить

## Обзор

Этот инструмент реализует **пороговое разделение секрета Шамира** над GF(256): секрет делится на `n` долей, и любые `k` из них (порог) могут его восстановить, а `k-1` и меньше *ничего не раскрывают* — секретность на уровне теории информации.

**Два режима:**
- **Разделить**: вставьте секрет (любой UTF-8 — пароль, API-ключ, seed-фразу, фразу восстановления), задайте порог `k` и всего `n` (2 ≤ k ≤ n ≤ 255), получите `n` долей. Раздайте каждому держателю по одной.
- **Восстановить**: вставьте `k` или больше долей (по одной в строке) для восстановления секрета через интерполяцию Лагранжа в x=0.

**Как работает.** Каждый байт секрета — свободный член случайного полинома степени `k-1` над GF(256). Доля `i` — значение полинома в `x=i`. Для восстановления нужно `k` точек, чтобы однозначно определить полином степени `k-1`. Коэффициенты берутся из `crypto.randomBytes()` (CSPRNG ОС), никогда `Math.random()`.

**Ограничения — прочитайте:**
- **Только конфиденциальность, без целостности.** Держатель доли может отправить *поддельное* значение при восстановлении; расчёт даст правдоподобный, но неверный секрет, и вы не узнаете. Если нужна защита от подмены, подпишите секрет (или его хэш) *до* разделения и проверьте после объединения.
- **Пределы GF(256).** `n` ограничено 255 (размер поля), `k` должно быть ≥ 2.
- **Формат доли.** Каждая доля — `sss:` + base64url из `[координата x, y-байт₁, y-байт₂, …]`. Сохраняйте строку целиком; обрезка ломает восстановление.

**Сценарии.** Эскроу/восстановление ключей (разделить мастер-ключ между руководителями), социальное восстановление для некастодных кошельков, распределение пароля так, что ни один человек не владеет им целиком, извлечение секрета по типу «dead man's switch».

## Входные данные

- **Режим** (select)
- **Секрет для разделения** (textarea): The secret to split (any text: a password, API key, seed phrase). Used in Split mode.
- **Порог (k)** (number): e.g. 3
- **Всего долей (n)** (number): e.g. 5
- **Доли для восстановления** (textarea): Paste shares to combine (one per line). At least k shares required. Used in Combine mode.

## Когда использовать

- Когда необходимо распределить доступ к критически важному паролю или мастер-ключу между несколькими доверенными лицами так, чтобы никто не владел им единолично.
- Для организации резервного копирования seed-фразы криптовалютного кошелька по схеме социального восстановления.
- При создании механизма аварийного доступа (dead man's switch), где для восстановления секрета требуется согласие определенного числа участников.

## Как это работает

- В режиме разделения каждый байт вводимого секрета становится свободным членом случайного полинома степени k-1 над конечным полем GF(256), коэффициенты которого генерируются с помощью криптографически стойкого метода crypto.randomBytes.
- Инструмент вычисляет значения полинома в n различных точках, формируя уникальные доли в формате base64url с префиксом sss:, которые распределяются между держателями.
- Для восстановления секрета в режиме объединения пользователь вводит как минимум k долей, после чего алгоритм выполняет интерполяцию Лагранжа в точке x=0 для точного воссоздания исходных байтов.

## Сценарии использования

- Разделение мастер-пароля от корпоративного менеджера паролей между топ-менеджерами компании.
- Безопасное хранение мнемонической фразы (seed-фразы) аппаратного кошелька в разных географических локациях.
- Распределение ключа расшифровки резервной копии базы данных среди системных администраторов.

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

### Безопасно ли вводить конфиденциальные данные в этот инструмент?

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

### Что произойдет, если я потеряю часть долей?

Вы сможете восстановить секрет, если у вас осталось не менее k долей (порог). Если долей меньше k, восстановить секрет математически невозможно.

### Защищает ли схема Шамира от подделки долей при восстановлении?

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

### Каковы ограничения на количество долей и размер порога?

Из-за ограничений поля GF(256) общее количество долей (n) не может превышать 255, а порог (k) должен быть не менее 2.

### В каком формате генерируются доли секрета?

Каждая доля представляет собой текстовую строку, начинающуюся с префикса sss:, за которым следует закодированная в base64url информация о координатах.

## Связанные инструменты

- [Тестер пары ключей и инкапсуляции ML-KEM / Kyber](https://elysiatools.com/ru/tools/ml-kem-kyber-keypair-and-encapsulation-tester): Генерирует пары ключей ML-KEM-512/768/1024 (FIPS 203 / CRYSTALS-Kyber), инкапсулирует случайный общий секрет открытым ключом, декапсулирует закрытым и проверяет совпадение — с живой сверкой точных размеров всех трёх наборов параметров.
- [Проверщик заголовков безопасности](https://elysiatools.com/ru/tools/security-headers-checker): Аудит HTTP-заголовков ответа на безопасность — анализирует необработанные заголовки, которые вы вставляете (без сети), и оценивает их по набору безопасных заголовков OWASP с проверками на уровне значения: HSTS max-age, CSP unsafe-inline/eval, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP и др. Возвращает оценку (от A+ до F) и находки по каждому заголовку с готовыми к копированию рекомендациями.
- [Планировщик ротации секретов из .env](https://elysiatools.com/ru/tools/env-file-secret-rotation-planner): Вставьте .env и получите поэтапный план ротации секретов. Распознаёт URL баз данных, API-ключи, auth-токены, приватные ключи, облачные учётные данные, платёжные ключи и секреты шифрования; оценивает каждый по экспозиции и возрасту и распределяет по 4-недельному таймлайну с чек-листом двойного ключа и сгенерированным .env.example. Опциональные даты последней ротации и настраиваемая каденция (30/90/180/365 дней) задают оценку соответствия.
- [Генератор пары ключей RSA](https://elysiatools.com/ru/tools/rsa-key-generator): Создаёт пару ключей RSA (открытый/закрытый) через crypto.generateKeyPairSync() Node в формате PEM. Поддерживаются 2048/3072/4096 бит, PKCS#8 (рекомендуется) или PKCS#1, шифрование закрытого ключа паролем. Ключи генерируются локально.
- [Проверщик безопасности URL](https://elysiatools.com/ru/tools/url-safety-checker): Обнаруживает фишинговые и мошеннические сигналы в URL путём глубокого структурного анализа — омоглифные атаки punycode/IDN (смешанная латиница/кириллица), встроенные учётные данные (трюк user:pass@host), высокорисковые TLD, двойное кодирование и контрабанда управляющих символов, обман поддомена с брендом и числовая/IP-обфускация. Только статический анализ, без сети. Дополняет URL Validator.
- [Проверка Силы Парольной Фразы AGEX](https://elysiatools.com/ru/tools/agex-passphrase-strength-checker): Оценивает парольную фразу для AGEX и рекомендует подходящий профиль защиты
- [Инструкция Безопасной Передачи AGEX](https://elysiatools.com/ru/tools/agex-secure-share-note): Создает понятную инструкцию для получателя AGEX-пакета: как безопасно расшифровать и проверить его
- [Генератор цифровой подписи](https://elysiatools.com/ru/tools/digital-signature-generator): Подписывает сообщение приватным ключом или проверяет подпись публичным — поддерживает RSA-PSS (SHA-256), ECDSA (P-256) и Ed25519. Чисто локальная криптография (Node crypto.createSign/createVerify), без сети. Вставьте PEM-ключ для подписи или проверки base64-подписи. Инструмент только подписывает/проверяет; он не генерирует пары ключей.

## Примеры

- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Примеры Обработки Изображений Android Java](https://elysiatools.com/ru/samples/android-image-processing-java): Примеры обработки изображений Android Java включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Android Kotlin](https://elysiatools.com/ru/samples/android-image-processing-kotlin): Примеры обработки изображений Android Kotlin включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Web Rust](https://elysiatools.com/ru/samples/web-image-processing-rust): Примеры обработки изображений Web Rust включая чтение/запись, масштабирование и преобразование форматов
