Споделянето на тайна (secret sharing) е криптографичен метод за разпределяне на една тайна между множество участници така, че само някакво подмножество от тях да може да възстанови тайната. Под „тайна“ обикновено се разбира криптографски ключ, парола или друг критичен секрет. Идеята е: всеки участник получава своя дял от тайната; знанието само на един дял не е достатъчно за възстановяване, но при сътрудничество на достатъчно много участници тайната може да бъде реконструирана. Концепцията е формулирана независимо от Ади Шамир и Джордж Блейкли през 1979 г.
Основна дефиниция и параметри
Типичният модел се описва с параметрите n и t (или k): има n участника, а праговото число t (threshold) е минималният брой дялове, необходими за реконструкция. Така схемата е t‑от‑n (t-of-n). Ако се притежават по-малко от t дяла, участниците не могат да възстановят тайната или нямат достатъчно информация, за да я изчислят (при идеални схеми).
Класически методи
- Шамирово споделяне (Shamir): използва полином от степен t−1 над крайно поле (например поле с просто число p > тайната). Константният член на полинома е тайната s, а всеки участник получава стойност (x_i, f(x_i)). Реконструкцията се прави чрез интерполация (Lagrange interpolation) от поне t точки. Този метод е информационно-теоретично сигурен: по-малко от t дяла дават нулева информация за тайната.
- Блейкли (Blakley): геометричен подход, при който всеки дял дефинира хиперплан; тайната е точка, която се възстановява като пресечна точка на поне t хиперплана.
- Адитивно (XOR) споделяне: прост подход за двоични данни — генерират се случайни блокове s1,...,s_{n−1} и последният дял се взема като s_n = s ⊕ s1 ⊕ ... ⊕ s_{n−1}. Всички дялове заедно дават тайната; при липса на някое от тях възстановяването е невъзможно.
- Ramp схеми: позволяват частично изтичане на информация при по-малко от t дяла, но намаляват размера на всеки дял и подобряват ефективността при големи тайни.
Свойства на сигурността
- Информационно-теоретична (перфектна) сигурност: при Шамир и при правилно избрани параметри, притежанието на по-малко от t дяла не дава никаква представа за тайната — това е силно свойство, независещо от изчислителната мощност на нападателя.
- Изчислителна сигурност: някои схеми комбинират споделянето с криптографски примитиви и осигуряват сигурност срещу ограничени атаки на база изчислителна трудност.
- Устойчивост срещу злонамерени участници: в присъствието на активни (Byzantine) нападатели е нужно допълнително — Verifiable Secret Sharing (VSS) — за да се гарантира, че раздаваният дял е валиден и че участници не лъжат по време на реконструкция.
Разновидности и разширения
- Verifiable Secret Sharing (VSS) — позволява на участниците да проверят, че получените дялове са коректни и съвместими, без да разкриват тайната.
- Proactive secret sharing — периодично обновяване на дяловете, за да се предпази системата от натрупване на компрометирани дялове с течение на времето, без да се променя тайната.
- Distributed Key Generation (DKG) — схемите без доверен дилър, при които участниците заедно генерират ключа и разпределят дяловете си, елиминирайки нуждата от централен доверен източник.
- Threshold криптография — при която криптографски операции (напр. подписване, декриптиране) могат да се извършат съвместно от t участника, без да се реконструира целият частен ключ в едно място (пример: threshold RSA, threshold ECDSA).
Примери и приложения
Един често цитиран пример е криптосистемата RSA, която използва секретен ключ. Ако този ключ бъде разпределен между много хора, нито един човек сам по себе си не може да направи подпис или да декриптира; за това е нужно да се съберат достатъчно дялове. Дори ако част от дяловете бъдат разкрити или изгубени, останалите могат да възстановят функционалността — полезно в банки, държавни институции, военни системи и др.
Други приложения:
- Управление на ключове в организации и облачни услуги (split key management).
- Мулти-подписни схеми и гласуване (които изискват съгласие на множество страни).
- Системи за възстановяване на пароли и секретни резервни копия.
- Разпределени доверителни инстанции в блокчейн и децентрализирани приложения.
- Защита на критични кодове (напр. архивиране на ключове за шифроване на данни, управление на CA коренове и др.).
Практически съображения и рискове
- Избор на прага t е компромис между сигурност и наличност: по-нисък t улеснява възстановяването, но намалява сигурността; по-висок t затруднява злонамерените, но може да усложни операциите при липса на участници.
- Надеждно генериране на случайни числа и защитен канал при разпределянето на дяловете са критични.
- Съхранение и защита на дяловете: всеки дял е ценен и трябва да се пази срещу компромис; използват се хардуерни модули (HSM), защитени устройства или сигурни офлайн носители.
- Ако се очакват злонамерени участници, трябва да се използват VSS и протоколи устойчиви на Byzantine поведение.
- Поддръжка: периодично обновяване на дяловете (proactive), планове за възстановяване при загуба и ротация на ключове.
Кога да се използва споделяне на тайна
Споделянето на тайна е подходящо когато искате да:
- премахнете единична точка на провал (single point of failure) за важен ключ;
- изисквате колективно одобрение за извършване на критични операции;
- създадете устойчиви на компромис системи за дългосрочно съхранение на секрети.
Като обобщение: споделянето на тайна е мощен инструмент за подобряване на сигурността и наличността на критични криптографски ключове и други секрети. Правилната избор на схема, параметри и протоколи (VSS, DKG, proactive) и внимателно прилагане на практическите мерки гарантират сигурност и надеждност в реални системи. За по-подробно теоретично разбиране на сигурността и измеренията ѝ вижте теорията на информацията, която формализира понятия като информационно-теоретична сигурност.