Тройки Бивера
- title
- Тройки Бивера
- type
- concept
- summary
- Предвычисленные тройки (a, b, c=ab) в разделённом виде, превращающие умножение секретов в двухраундовую операцию константной степени
- tags
- cryptography, mpc
- sources
- stoffel-beaver-triples
- created
- 2026-05-10
- updated
- 2026-05-10
- lang
- ru
- translation_of
- beaver-triples
- source_updated
- 2026-05-10
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Тройка Бивера - это кортеж ([a], [b], [c]) из разделённых случайных значений, где c = a · b, сгенерированный на офлайн-фазе до начала основных вычислений. Дон Бивер предложил их в 1991 году, чтобы решить давнюю проблему в secure-multiparty-computation на основе secret-sharing: при наивном умножении двух разделённых значений степень многочлена удваивается, что повышает порог восстановления секрета.
Суть трюка - тождество прямоугольника. Имея доли [x], [y] и свежую тройку ([a], [b], [c=ab]):
- Вычислить
[d] = [x] - [a]и[e] = [y] - [b]- локально, без сетевого взаимодействия. - Открыть
dиe(один раунд broadcast'а). Это безопасно, так какa, b- равномерно случайные маски. - Вычислить
[xy] = [c] + d·[b] + e·[a] + d·e- локально, без роста степени.
Два условия корректности:
- Тройка должна быть свежей (использоваться строго один раз). Повторное использование раскрывает линейные зависимости между секретными входами.
a, bдолжны быть равномерно случайными. Смещение приводит к тому, что открытиеd = x - aраскрывает информацию обx.
На практике офлайн-фаза генерации троек оказывается самой ресурсоёмкой. Распространённые подходы:
- На базе OT (TinyOT, MASCOT): генерация троек через oblivious transfer; константное число раундов, высокий расход полосы пропускания
- На базе HE (SPDZ): использование гомоморфного шифрования Paillier или BFV/BGV; меньше трафика, больше вычислений
- На базе TTP (фаза обучения/настройки или аппаратные анклавы): доверенный дилер генерирует тройки; самый дешёвый вариант, но требует предположения о доверии, от которого MPC как раз призван избавить
Тройки Бивера обобщаются: существуют матричные тройки (для линейной алгебры), булевы тройки AND (для вычислений в стиле garbled circuits) и квадратичные тройки ((a, a²) для операций деления).
Пример работы приведён в mpc-beaver-triples (сценарий со счётом в ресторане от Stoffel).