Пороговая схема разделения секрета основана на идее, что исходное секретное значение не хранится целиком ни в одном из узлов системы. Вместо этого оно раскладывается на несколько частей (долей), и для восстановления требуется только часть этих долей. В контексте JavaScript-библиотеки Stanford JS Crypto Library (SJCL) эта концепция реализуется через механизмы, основанные на схеме Шамира.
В основе лежит пара параметров: n и k.
Схема обозначается как (k, n)-threshold scheme. Она задаёт строгую границу между доступностью и безопасностью: пока собрано меньше k частей, информация о секрете математически недоступна.
Параметр n определяет, на сколько независимых частей будет разделён секрет.
Каждая доля:
Увеличение n повышает устойчивость системы к потере отдельных долей, но одновременно:
В практических реализациях SJCL n обычно выбирается исходя из архитектуры доверия: например, распределение ключа между участниками системы или устройствами.
Параметр k задаёт минимальное количество долей, необходимых для восстановления секрета.
Если доступно:
Ключевая особенность: знание k−1 долей не даёт никакой информации о секрете в криптографическом смысле.
Таким образом k определяет баланс между:
В SJCL пороговая схема реализуется через интерполяцию многочлена над конечным полем.
Пусть секрет — это значение:
S = f(0)
Строится случайный многочлен степени k−1:
f(x) = a₀ + a₁x + a₂x² + … + aₖ₋₁xᵏ⁻¹
где:
Далее вычисляются точки:
(x₁, f(x₁)), (x₂, f(x₂)), …, (xₙ, f(xₙ))
Каждая такая пара — отдельная доля.
Восстановление секрета происходит через интерполяцию Лагранжа по любым k точкам.
В SJCL пороговые схемы используются в контексте криптографических примитивов, например:
Логика обычно строится вокруг генерации долей и их последующего объединения через интерполяцию.
Типовая модель использования включает:
Хотя конкретные API могут отличаться в зависимости от версии SJCL, общая модель остаётся неизменной: операции происходят над битовыми представлениями и полями Галуа, что обеспечивает криптографическую корректность.
Процесс разделения включает несколько этапов:
При восстановлении:
Ключевая особенность заключается в том, что выбор любых k точек полностью определяет многочлен степени k−1.
На практике параметры выбираются исходя из модели угроз:
Рост n увеличивает распределённость, рост k увеличивает строгость контроля доступа.
Некорректный выбор параметров приводит к системным проблемам:
Баланс между n и k определяет устойчивость системы к компрометации и отказам участников.
Пороговая схема в SJCL обладает следующими свойствами:
Эти свойства обеспечиваются не предположениями о вычислительной сложности, а структурой алгебраической модели.