Розподіл секрету за схемою Шаміра
Розділіть пароль чи фразу відновлення на N часток, будь-які M з яких відновлюють секрет, за схемою Шаміра над GF(256) локально у вашому браузері.
Розділення й об’єднання виконуються цілком у вашому браузері. Секрет і частки ніколи нікуди не надсилаються; випадкові числа беруться з crypto.getRandomValues.
Розділення секрету
Об’єднання часток
Як розділити секрет
- Введіть або вставте текст, який потрібно захистити, в поле Секрет (текст): фраза відновлення, головний пароль, ключ шифрування…
- Задайте Кількість часток (N) і Часток для відновлення (M). Наприклад, N = 5 і M = 3 означає, що будь-які 3 із 5 часток відновлюють секрет, а 2 частки не розкривають нічого.
- Натисніть Розділити секрет. Кожна частка з’являється в окремому рядку зі своєю кнопкою Копіювати; також можна натиснути Копіювати всі частки або Завантажити частки (.txt).
- Натисніть Тест: об’єднати перші M часток, щоб перевірити, чи частки працюють, перш ніж їх роздавати.
- Віддайте кожну частку різній людині або зберігайте її в різному місці. Не тримайте всі частки разом, інакше розділення втрачає сенс.
Як відновити секрет
- Вставте щонайменше M часток у поле Частки, по одній на рядок у будь-якому порядку. Порожні рядки ігноруються.
- Натисніть Об’єднати частки. Текст з’явиться під заголовком Відновлений секрет, а в статусі буде вказано, які номери часток використано.
- Якщо в частці є одруківка, вона походить з іншого розділення або двічі трапляється з різним вмістом, інструмент повідомить, яка саме й чому, замість того щоб повернути сміття.
Як працює схема розподілу секрету Шаміра
Аді Шамір опублікував цю схему 1979 року. Щоб розділити один байт s з порогом M, обирають випадковий многочлен степеня M − 1, вільний член якого дорівнює s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Частка з номером x – це значення f(x). Будь-які M точок однозначно задають многочлен, тому інтерполяція Лагранжа в точці x = 0 повертає s; а з меншою кількістю точок усі значення s рівноймовірні, тож частки нічого не розкривають про секрет.
Цей інструмент працює в скінченному полі GF(256) (тому, що використовує AES, з незвідним многочленом x⁸ + x⁴ + x³ + x + 1), тому кожен байт секрету в UTF-8 отримує власний многочлен, а частки мають точно таку саму довжину, як секрет. Випадкові коефіцієнти надходять із crypto.getRandomValues, криптографічного генератора випадкових чисел браузера. Усе виконується локально: секрет і частки ніколи не залишають ваш пристрій.
Формат частки
Частка виглядає як 3-2-5f1c…: поріг M, номер частки X (від 1 до 255), а потім шістнадцяткові дані. Дані містять значення многочлена для секрету, за ними 4-байтовий CRC-32 секрету, а завершує їх 4-байтова контрольна сума CRC-32 самої частки. Контрольна сума ловить помилки копіювання; внутрішній CRC показує, що змішано частки від різних секретів. Частки, створені іншими інструментами Шаміра, мають інші формати, і тут їх об’єднати не можна.
Поширені запитання
Як вибрати N і M?
M – це кількість людей чи місць, які мають діяти спільно, а N − M – кількість часток, якими ви можете пожертвувати. Поширений вибір – 3 із 5: дві частки можна втратити чи знищити, і жодна пара власників не зможе відновити секрет самостійно.
Чи безпечно зберігати одну частку в хмарі?
Одна частка або будь-яка група менша за M не розкриває нічого про секрет. Проте в жодному обліковому записі чи місці не тримайте M часток або більше, інакше саме це місце матиме весь секрет.
Чи шифрує цей інструмент секрет?
Не в звичному розумінні: пароля тут немає. Захист забезпечує поріг. Обидва підходи можна поєднати, наприклад розділити парольну фразу до зашифрованого файлу.
Що буде, якщо надати більше ніж M часток?
Перші M часток відновлюють секрет, а решту звіряють із ним. Частка, яка не підходить, відображається в повідомленні, що допомагає помітити пошкоджену чи чужу частку.
Чи можна розділити файл?
Цей інструмент розділяє текст до 10 000 байт. Для файлу зашифруйте його надійною випадковою парольною фразою й розділіть саму фразу.
Схожі інструменти
- Генератор паролів Безкоштовний генератор створює надійні випадкові паролі від 4 до 128 символів у вашому браузері із захищеним генератором. Нічого не зберігається.
- Генератор парольних фраз Створюйте надійні парольні фрази в стилі Diceware зі списку EFF або французького списку, з ентропією в бітах. Безпечна генерація у вашому браузері.
- Шифрування тексту з паролем Шифруйте й розшифровуйте текст парольною фразою у браузері: AES-256-GCM і PBKDF2 із 600 000 ітерацій. Нічого не надсилається на сервер. Чесні обмеження.
- Генератор кодів TOTP і HOTP Генеруйте коди 2FA TOTP і HOTP із секрету Base32 або URI otpauth:// з SHA-1, SHA-256 чи SHA-512, живим відліком і QR-кодом для застосунків 2FA.