Бесплатный инструмент

Разделить секрет на части

У seed-фразы противоречие: одна копия теряется, много копий — каждая лишний риск. Эта страница режет секрет на несколько частей так, что любые нужные K из них собирают его обратно, а меньшее число не говорит о нём ничего. Три части у трёх близких, любые две восстанавливают — и ни один в одиночку не может ничего.

Всё считается в браузере: ни секрет, ни части никуда не отправляются.

Ни секрет, ни части не отправляются никуда: вся математика считается в этой вкладке.

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

Схема Шамира. Каждый байт секрета прячется в многочлен: свободный член равен самому байту, остальные коэффициенты случайны, а степень на единицу меньше порога. Часть номер x — это значение многочлена в точке x. Через любые K точек проходит ровно один многочлен нужной степени, поэтому K частей дают исходный байт однозначно. А через K−1 точек проходит бесконечно много таких многочленов, и все свободные члены равновероятны — вот почему меньшее число частей не говорит вообще ничего.

Считается всё в поле GF(256) — том же, что внутри AES. Байты остаются байтами, части получаются короткими, и записать их на бумагу реально.

Как этим пользоваться по-человечески

Самая рабочая схема для домашнего хранения — три части с порогом два. Одна у вас, одна у родственника, одна в банковской ячейке или у второго близкого. Потеряли свою — восстановите по двум оставшимся. Украли одну — у вора не будет ничего, даже подсказки.

Чего делать не надо: хранить две части в одном месте (это то же самое, что хранить одну копию) и ставить порог, равный числу частей (тогда потеря любой части — потеря секрета).

Рядом: проверка seed-фразы, зашифровать файл паролем и зашифровать текст.

Мы не храним ничего из этого

Ни секретов, ни частей, ни паролей — как и журналов посещений в самом VPN. Передавать по запросу нечего.

Как это устроено →

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

guest@404vpn:~$ cat secret-split-faq.md
[01] $ Чем это лучше, чем просто разрезать фразу на три куска?
> Тем, что кусок обычной фразы — это уже часть ответа: имея восемь слов из двенадцати, остальные перебирают. Здесь каждая часть по отдельности не говорит о секрете ничего: пока не собрано нужное число частей, невозможно узнать даже длину исходного текста с уверенностью. Это математическое свойство схемы, а не обещание.
[02] $ Сколько частей делать и сколько требовать?
> Для домашнего хранения обычно берут три части и порог два: одна потерялась — вы всё ещё восстановите, одну украли — вор ничего не получит. Порог, равный числу частей (три из трёх), опасен: потеря любой части означает потерю секрета навсегда.
[03] $ Где хранить части?
> Раздельно и в разных местах — в этом весь смысл. Две части в одном сейфе не лучше, чем одна копия. Части можно записать на бумаге: они короткие и состоят из обычных букв и цифр.
[04] $ А если часть повреждена или это часть от другого секрета?
> Мы это заметим. Перед разрезанием в секрет дописываются два байта его хэша, и при сборке они проверяются. Если части не от одного секрета или одна из них испорчена, страница скажет об этом, а не выдаст правдоподобный мусор.
[05] $ Вы видите мой секрет?
> Нет. Страница не делает ни одного сетевого запроса при разрезании и сборке — вся математика происходит в вашей вкладке. Это видно во вкладке «Сеть» в инструментах разработчика.