112 / 691BLIND

Blind signature

Сліпий підпис підписує повідомлення, зміст якого прихований під час підписання. За правильного протоколу пізніший токен неможливо надійно пов’язати з конкретним сеансом випуску.

У конструкції RSA Чаума запитувач засліплює закодоване повідомлення випадковим множником, отримує підпис прихованого значення й знімає засліплення. Коректність, сліпота та непідробність — різні властивості; сам підпис не запобігає копіюванню токена чи подвійній витраті.

Звичайний підпис показує підписувачу повідомлення. Сліпий протокол відділяє дозвіл від змісту, даючи змогу підтвердити право чи вартість без знання кінцевого токена. [David Chaum — Blind Signatures for Untraceable Payments] [RFC 9474 — RSA Blind Signatures]

З відкритим ключем RSA (n,e) запитувач кодує повідомлення m, обирає випадкове оборотне r і надсилає m′ = m·r^e mod n. Засліплення приховує повідомлення від підписувача. [David Chaum — Blind Signatures for Untraceable Payments] [RFC 9474 — RSA Blind Signatures]

Підписувач використовує таємний показник d і після перевірки дозволу повертає s′ = (m′)^d mod n. Він бачить засліплене значення й подію авторизації, а не кінцеве повідомлення. [David Chaum — Blind Signatures for Untraceable Payments] [RFC 9474 — RSA Blind Signatures]

Запитувач обчислює s = s′·r⁻¹ mod n. Алгебра знімає засліплення, залишаючи той самий підпис RSA, що виник би при прямому підписанні закодованого m. [David Chaum — Blind Signatures for Untraceable Payments] [RFC 9474 — RSA Blind Signatures]

Будь-хто з відкритим ключем перевіряє, що s^e відповідає закодованому повідомленню. Кінцева пара повідомлення та підпису не мусить містити ідентифікатор інтерактивного випуску. [RFC 9474 — RSA Blind Signatures] [CFRG — RSA Blind Signatures security analysis]

Сліпота означає, що підписувач не може надійно пов’язати пізніший токен із конкретним сеансом підписання. Безпечне кодування й новий непередбачуваний множник необхідні; підручникове RSA не є виробничим протоколом. [RFC 9474 — RSA Blind Signatures] [CFRG — RSA Blind Signatures security analysis]

Непідробність не дозволяє створити більше чинних підписів, ніж було дозволених взаємодій підписання. Властивість one-more unforgeability також враховує нападника, який веде кілька сеансів одночасно. [RFC 9474 — RSA Blind Signatures] [CFRG — RSA Blind Signatures security analysis]

У чаумівській готівці монетний двір під час виведення списує кошти чи перевіряє право та сліпо підписує секрет монети. Згодом він перевіряє своє зобов’язання, не знаючи автоматично рахунку походження монети. [David Chaum — Blind Signatures for Untraceable Payments] [GNU Taler — Blind signatures]

Сліпий підпис не запобігає копіюванню токена, не приховує дані продавця чи мережеві метадані та не гарантує платоспроможності емітента або безпеки зламаного гаманця. Подвійну витрату обробляє реєстр витрачених токенів чи інший протокол. [RFC 9474 — RSA Blind Signatures] [GNU Taler — Blind signatures]

Cashu та Fedimint використовують сліпо підписані вимоги до монетного двору чи федерації в середовищі Bitcoin і Lightning Network. Їхні конкретні криптографічні конструкції відрізняються від наведеного прикладу RSA. Приватність транзакцій супроводжується ризиками зберігання коштів і доступності емітента. [Cashu protocol specifications] [Fedimint documentation]

Для повної картини прочитайте також David Chaum, Chaumian eCash, DigiCash, Cashu, Fedimint, Приватність у Bitcoin. На цю статтю також посилаються DigiCash, Chaumian eCash, Cashu, David Chaum.

DOC · 001David Chaum — Blind Signatures for Untraceable PaymentsПервинне джерело ↗DOC · 002RFC 9474 — RSA Blind SignaturesСпецифікація ↗DOC · 003CFRG — RSA Blind Signatures security analysisСпецифікація ↗DOC · 004GNU Taler — Blind signaturesДокументація ↗DOC · 005Cashu protocol specificationsСпецифікація ↗DOC · 006Fedimint documentationДокументація ↗
Спочатку джерела · Не інвестиційна порада