Що насправді досягає сліпої підписи
Цифрова підпис зазвичай сертифікує дві речі одночасно: що конкретна уповноважена особа схвалила повідомлення, і саме те, що містить це повідомлення, оскільки підписант зазвичай читає його перед підписом. Сліпа підпис розділяє ці два аспекти. Він дозволяє заявнику отримати дійсну та перевірену підпис від уповноваженої особи на вибране ним повідомлення, при цьому уповноважена особа ніколи не дізнається вміст повідомлення та, що особливо важливо, не може пізніше пов’язати підписаний нею документ із конкретним запитом, який його згенерував. Отриманий результат – повністю звичайний: будь-хто може перевірити його за допомогою публічного ключа підписанта і це доводить, що уповноважена особа дійсно підписала саме це повідомлення. Відсутній будь-який запис з боку підписанта, який би зв’язав цей результат із конкретною транзакцією, заявником або моментом часу. Це не те ж саме, що шифрування, яке приховує повідомлення від усіх; тут підписант є активним та охочим учасником, який схвалює щось, не бачачи його. Ця техніка важлива, оскільки так багато реальних систем потребують уповноваженої особи для сертифікації відповідності або цінності без необхідності сертифікувати чи спостерігати за деталями, а сліпі підписи дозволяють здійснити цю схвалення без створення документу, який уповноважена особа могла б використати для відстеження своїх користувачів.
Внутрішньо-карбосова посилка: Фізильна Аналогія
Класичний спосіб побудови інтуїції щодо блінд-підписів повністю фізичний і передує будь-яким комп’ютерам. Уявіть собі аркуш паперу, на якому ви написали щось приватне, який помістили в спеціальну посилку, обгорнуту з внутрішнім шаром карбосового паперу. Ви запечатаєте посилку та передаєте її нотаріусу. Нотаріус не може відкрити посилку або прочитати те, що всередині, але він може поставити підпис на зовнішній стороні посилки ручкою. Завдяки внутрішньому шару карбосового паперу, тиск від цього підпису безпосередньо проходить крізь посилку та відбивається на прихованому папері нижче, залишаючи справжній слід підпису на вашому власному документі, незважаючи на те, що нотаріус ніколи не бачив жодного слова з нього. Ви берете посилку назад, розриваєте її та виймаєте папір. Тепер він містить справжній, фізично переведений підпис, який витримає будь-який огляд, але нотаріус нічого не знає, що він підписав, і, якщо ви використовували свіжу, непомічену посилку, немає способу впізнати цей папір пізніше, навіть якщо б він хотів це зробити. Це точно відповідає формі криптографічного протоколу: надію (посилка) застосовується як маскування перед підписом, підпис проходить через маскування на справжній вміст, а видалення маскування після цього відкриває дійсний підпис на оригінальному, невидимому повідомленні.
Механізм RSA: Множення з використанням засліджуючого фактора
RSA blind signatures перетворюють трюк із конвертом на арифметику, використовуючи чудову властивість модульної експоненціалізації. Запитчик спочатку обирає випадковий засліджуючий фактор, потім маскує повідомлення, множачи його на цей засліджуючий фактор, піднесений до степеня публічної експоненти підписувача, все це зведено до модуля публічного ключа підписувача. Отримане значення виглядає повністю випадковим і не розкриває жодної інформації про оригінальне повідомлення будь-кому, хто не знає засліджуючого фактора. Запитчик надсилає це замасковане значення підписувачу, який застосовує свій приватний ключ, як зазвичай підписує звичайне повідомлення, не маючи можливості відрізнити його від випадкового шуму. Коли цей підписаний, все ще засліджений, результат повертається, запитчик ділить засліджуючий фактор, зокрема, множачи його на його модульний обернений. Оскільки операція підпису RSA побудована сама по собі на основі модульної експоненціалізації, і оскільки експоненціалізація розподіляється чисто над множенням при спільному модулі, трансформація засліджуючого фактора також має характер підпису, яка ідеально скасовується, залишаючи точно таку ж підпис, що б виникла при безпосередньому підписанні незміненого, незаслідженого повідомлення. Без будь-якої апроксимації, залишків чи слідів – лише математично точний дійсний підпис до вмісту, який ніколи не торкався підписувач.
Чому це забезпечує справжню, доказову анонімність
Гарантія конфіденційності тут сильніша за простое приховування інформації через неясність; це структурна властивість математики. Оскільки фактор збурення обирається випадковим чином та незалежно для кожного запиту, дискритова (прихована) величина, яку обробляє підписант, статистично не пов’язана з остаточно розкритим повідомленням та цифровим підписом, які використовує заявник пізніше. Навіть якщо підписант веде ідеальний журнал усіх заздалегідь зашуканих значень, підписаних ним, цей журнал марний для встановлення зв’язку між пізніше представленим дійсним підписом з будь-яким конкретним записом, оскільки зв'язок між ними прихований за випадковим множником, який знав лише заявник. Водночас ніщо не послаблює валідності підпису. Він непідробний у точному тому ж сенсі, що й звичайний підпис RSA, перевіряється будь-ким, використовуючи звичайний публічний ключ підписанта, та доводить факт авторизації. Це поєднання робить сліпі підписи цінними в ситуаціях, які визначаються конфліктуючими вимогами: орган влади повинен мати можливість сказати «так» або «ні» на запит, його схвалення має бути достовірним та перевіреним, але ті, хто покладається на цей орган, потребують гарантії того, що схвалення не може пізніше бути використане як докази стеження.
Практичні застосування: Цифровий капітал та анонімні голосування
Спочатку, у 1980-х роках, мотивацією Дейвіда Чоу було створення анонімного цифрового грошового коштів. У його схемі банк «сліпим підписом» (blind-signs) токен, що представляє фіксовану суму грошей, підтверджуючи таким чином, що він є справжнім і обмінюваним, не бачачи, який саме токен він підписав. Коли токен пізніше витрачається та депозитується, банк може перевірити підпис і виконати його вартість, але не має способу пов'язати цей винахід з витягом, що створило його, імітуючи анонімність фізичної готівки в цифровому середовищі. Ця сама схема повторюється в деяких сучасних схемах анонімного електронного голосування. Виборча комісія повинна підтвердити, що обранець зареєстрований та не голосував раніше, по суті «сліпим підписом» токен, який сертифікує бюлетень як дійсний і унікальний. Обранець потім кидає цей сертифікований бюлетень через анонімний канал, і будь-хто може перевірити, що бюлетень має справжній підпис, тоді як комісія, яка його видала, не може відстежити, який сертифікований токен відповідає якому кинутому бюлетеню або як він був заповнений. Крім цих двох основних застосувань, варіації «сліпих підписів» зустрічаються в системах захисту конфіденційності свідоцтв, анонімних токенах автентифікації та інших протоколах, де сертифікована легітимність і особиста приватність здавалися б неможливими одночасно.
Frequently asked questions
Хто винайшов сліпі підписи та чому?
Девід Чоам представив сліпі підписи на початку 1980-х років як частину своєї ширшої роботи над цифровою конфіденційністю, головним чином для розробки анонімних цифрових грошей, які банк міг сертифікувати без відстеження того, хто їх витратив.
Чи означає сліпий підпис, що підписувач підписує все незрозуміло, без жодного контролю?
Ні. Підписувач все ще вирішує, чи підписувати, і зазвичай застосовує контекст поза протоколом, наприклад, вимагаючи доказ особистості або балансу рахунку перед тим, як погодитися підписати; вони просто ніколи не бачать конкретного вмісту повідомлення, яке вони сертифікують.
Як видаляється фактор засліплення після підпису?
Запитчик множить підписане, засліплене значення на модульне обернене значення фактора засліплення. Через те, як модульна експоненціальна операція розподіляє себе над множенням в RSA, це точно скасовує засліплюючу трансформацію і залишає дійсний підпис до оригінального повідомлення.
Чи може пізніше підписувач з’ясувати, який підпис належить якому запиту?
Ні, якщо фактор засліплення був обрано випадково і збережено в таємниці запитчиком. Приховане значення, яке обробляє підписувач, статистично не пов'язане з останнім розкритим підписом, тому навіть повний журнал дій підписання не надає жодного зв’язку.
Чи є сліпий підпис слабшим або менш надійним, ніж звичайний підпис?
Ні. Остаточний підпис повністю дійсний і може бути перевірено за допомогою звичайного публічного ключа підписувача, точно так само непідробний, як будь-який стандартний підпис RSA. Видаляється лише зв’язок із початковим запитом на підписання, а не автентичність підпису.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Blind Signatures: Getting Something Signed Without Letting the Signer See It і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Blind Signatures: Getting Something Signed Without Letting the Signer See It