ГоловнаСтаттіПошкоджені схеми: Безпечне двостороннє обчислення Яо

Пошкоджені схеми: Безпечне двостороннє обчислення Яо

Уявіть двох мільйонерів, які хочуть знати, хто з них багатший, не розкриваючи жоден із них свого фактичного чистого капіталу. Це класичний експеримент думки, який спонукав Ендрю Яо винайти «розпливлиті схеми» в 1980-х роках, один з перших практичних конструктів для безпечного двостороннього обчислення. Основна ідея химерно елегантна: візьміть будь-яку функцію, виразите її як булеву схему воріт AND та XOR, а потім дозвольте одній стороні (зашифровщику) шифрувати кожну істинну таблицю воріт так, щоб лише правильна комбінація міток вхідних даних розблокувала правильну мітку виходу. Інша сторона (оцінювач) отримує зашифровані версії своїх власних входів через розумний примітив - безглуздий переказ, який дозволяє їм підібрати правильну зашифровану мітку без того, щоб зашифровщик дізнався, яку він обрав, і без того, щоб оцінювач дізнався що-небудь про мітки, які він не вибрав. Оцінювач йде по зашифрованій схемі воріт за ворітом, розшифровуючи рівно одну рядок кожної зашифрованої істини на кожному кроці, доки остання таблиця декодування не відкриває відповідь у явній формі. Про жодне значення проміжних проводів або приватних вхідних даних будь-якої сторони ніколи не витікає. Це моделювання дозволяє вам побудувати невелику схему, спостерігати за тим, як зашифровщик розбиває їх істинні таблиці, та пройтися через оцінку, щоб побачити, як зашифровані мітки протікають по провідниках до тих пір, поки остаточний результат не стане видимим.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Від істинних таблиць до заплутаних таблиць

Кожен булевий елемент, будь то AND, OR або XOR, може бути повністю описаний істинною таблицею, яка перераховує його вихід для кожної комбінації бітів вхідних даних. У протоколі Яо заплутаний гравець починає, призначаючи кожній лінії схеми два випадкові криптографічні мітки, одну що представляє 0 і одну що представляє 1, так що мітка сама по собі не має сенсу для стороннього спостерігача. Для кожного елемента заплутаний гравець шифрує вихідну мітку, відповідну кожній рядку істинної таблиці, використовуючи два вхідні мітки цього рядка як симетричний ключ, зазвичай за допомогою зашифрованого хешу або автентифікованого шифру. Чотири отриманих шифротексти перемішуються у випадковому порядку, щоб їхня позиція більше не натякала на те, з якого рядка вони походять, створюючи те, що називається заплутаною таблицею. Цей процес повторюється елемент за елементом по всій схемі і все це може бути виконано офлайн заплутаним гравцем перед будь-якою взаємодією з оцінювачем. В результаті хтось, хто тримає лише заплутані таблиці та жодні мітки, нічого не дізнається про структуру функції або проміжні значення, оскільки кожен шифротекст виглядає як випадковий шум без відповідного пари вхідних міток для його розшифрування.

Непомітна передача: безслідне передавання вхідних даних

Оцінювач потребує зашифрованих міток, які відповідають його власним приватним бітовим даним, але отримання їх створює делікатну проблему: шифронаправитель не повинен дізнатися, які мітки були запрошені, оскільки це розкрило б вхідні дані оцінювача, а оцінювач не повинен отримувати обидві мітки для будь-якого дроту, оскільки це дозволило б йому оцінити схему на вхідних даних, відмінних від його власних. Непомітна передача вирішує саме цю проблему. У 1 з 2 непомітній передачі шифронаправитель тримає дві мітки для дроту, а оцінювач - одне бітове вибіркове значення; після виконання протоколу оцінювач дізнається лише мітку, що відповідає його бітовому значенню, і шифронаправитель нічого не дізнається про те, яке саме було обрано. Сучасні реалізації непомітної передачі будуються на основі публічних ключів, таких як еліптична крива Diffie-Hellman, а розумні методи розширення дозволяють кілька дорогих OT розтягнути в мільйони дешевших за допомогою лише симметричного шифрування. Для власних входжень шифронаправителя OT не потрібен взагалі; шифронаправитель просто надсилає відповідні мітки безпосередньо, оскільки лише шифронаправитель спочатку знав відображення між мітками та бітовими значеннями в схемі.

Оцінка заплутаної схеми

Після того, як оцінювач утримує один мітку для кожного дроту вхідного кабелю, оцінювання відбувається по слотах через топологічний порядок без необхідності взаємодії з хабеліком. На кожному слоті оцінювач має точний міток для кожного дроту входу і намагається розшифрувати кожен із чотирьох шифротекстів у заплутаній таблиці, використовуючи ці два мітки як ключ; завдяки конструкції лише один шифротекст успішно розшифровується, видаючи єдиний дійсний мітку для дроту виходу слота, а інші три розшифровуються в сміття, яке добре спроєктована схема дозволяє оцінювачу виявляти та відкидати. Цей мітку потім подається як міток входу в будь-який слот, який споживає цей дріт наступний, і процес каскадується до тих пір, поки не буде оцінено кожен слот. Оскільки оцінювач бачить лише один міток на дроті, обраний непомітно та щось схоже на випадкові біти, він може обчислити всю функцію, не дізнаючись нічого про проміжні значення, навіть не знаючи, чи переніс дріт 0 або 1. Вихідні дроти обробляються спеціально, з невеликою таблицею декодування, яка відображає кожне з двох можливих кінцевих мітеків на відповідний біт тексту, розкриваючи лише відповідь.

Оптимізації, які зробили заплутування практичним

Надто прості заплутані схеми є дорогими: кожен логічний елемент потребує чотирьох шифрованих текстів, кожен приблизно завдовжки симетричного ключа, і кожен AND- або XOR-елемент потребує власного криптографічного хешування. Десятиліття досліджень поступово зменшили цю вартість. Техніка «точка та дозвіл» прикріплює випадковий біт перестановки до кожного мітки, щоб оцінювач міг визначити, який із чотирьох шифрованих текстів спробувати, не розкриваючи нічого, уникнення непотрібних спроб дешифрування. Безкоштовна техніка XOR, представлена ​​Колесниковим і Шнайдером, вибирає мітки так, щоб XOR-елементи не потребували шифрування або зв’язку взагалі, практично зменшуючи їхню вартість, оскільки XOR лінійний відносно зміщення міток. Методи зниження до рядків і пізніше половини елементів Захуром, Розулек та Ейвенсом зменшили вартість AND-елементів з чотирьох шифрованих текстів до двох, приблизно вдвічі скоротивши зв’язок для домінуючого типу елементів. Разом ці оптимізації перетворили заплутані схеми з академічної цікавості на основу реальних розгорнутих систем для перетинів приватного множинного набору, безпечних аукціонів і висновків машинного навчання, що зберігають конфіденційність, де дві сторони можуть виконувати значні обчислення, обмінюючись лише невеликою кількістю зашифрованих даних.

Забезпечення безпеки та обмеження

Протокол Яо, як описано, досягає безпеки від напівчесних зловідників, тобто обидві сторони вірно дотримуються протоколу, але намагаються отримати додаткову інформацію з повідомлень, які вони бачать. У цьому сценарії грабел не отримує нічого, крім того, що випливає з їх вхідних даних та кінцевого результату, а оцінювач не отримує нічого, крім результату, гарантія формалізована шляхом симуляційних доказів, які показують, що симулятор без конфіденційних входів може генерувати транскрипт, який відрізняється від реального. Розширення цього до зловмисної безпеки, де спотворена сторона може відхилятися будь-яким чином, потребує додаткового обладнання, такого як граблювання «ріж і вибирай» багатьох надлишкових схем, докази без знань або автентичне граблювання, все це додає накладні витрати, але закриває проміжок між теоретичними та практичними зловмисниками. Варто також відзначити, що «граблеві схеми» не приховують: розмір і топологія схеми зазвичай є публічними, тому функція, яка обчислюється, зазвичай фіксована та відома заздалегідь, а будь-яка інформація, яку можна отримати виключно на основі результату, така як хто має більший заробіток у проблемі мільйонерів, є навмисним і неминучим витоком, що є вбудованим у функцію, а не дефектом протоколу.

Frequently asked questions

Хто вигадав розіршене мережі (garbled circuits) і чому?

Ендрю Яо представив цю конструкцію у 1980-х роках, формалізуючи проблему мільйонерів, де дві сторони хочуть порівняти багатство без розкриття фактичних сум. Це стало засновуючим технікою для загального призначення безпечного двостороннього обчислення.

Яку роль відіграє незбагненний передавач (oblivious transfer)?

Незбагненний передавач дозволяє оцінювачу отримати точно захешовану мітку, що відповідає їхньому приватному вхідному біту, без розкриття того, яку саме мітку він обрав, і без отримання іншої невикористаної мітки. Це міст, який безпечно переносить приватні входи у захешовані мережі.

Чому XOR не потребує витрат, а AND дорогий?

За допомогою безкоштовного оптимізації XOR, мітки проводів обираються так, щоб фіксований глобальний зсув розділяв мітку 0 і 1 на кожному дроті, роблячи виходи XOR обчислюваними шляхом простого XOR-перетворення вхідних міток без шифрування. AND-верстати нелінійні і все ще потребують зашифрованих рядків правди, хоча методи пів-верстатів зменшують їх до двох шифротекстів.

Чи коли-небудь бачить оцінювач фактичні значення біт на внутрішніх проводах?

Ні. Оцінювач утримує лише один непрозорий криптографічний мітку на кожному проводі і не може визначити, чи представляє він 0 чи 1, за винятком кінцевих вихідних проводів, які навмисно відображаються назад у текст через таблицю декодування.

Чи безпечний протокол Яо від шахрайського учасника?

Базовий протокол гарантує безпеку лише проти напів-чесних учасників, які дотримуються кроків, але намагаються отримати додаткову інформацію. Захист від активно зловмисних учасників, які відхиляються від протоколу, потребує додаткових технік, таких як 'cut-and-choose' або автентичне захешування.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Garbled Circuits: Yao's Secure Two-Party Computation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Garbled Circuits: Yao's Secure Two-Party Computation

Що ви знайшли?

Додати кроки відтворення (опційно)