Слепая подпись

редактировать

В криптографии слепая подпись, представленная Дэвидом Чаумом - это форма цифровой подписи, в которой содержимое сообщения замаскировано (скрыто ) до его подписания. Полученная слепая подпись может быть публично проверена по сравнению с исходным неслепым сообщением, как обычная цифровая подпись. Слепые подписи обычно используются в протоколах, связанных с конфиденциальностью, где подписывающее лицо и автор сообщения являются разными сторонами. Примеры включают криптографические системы выборов и схемы цифровых денег.

Часто используемой аналогией с криптографической слепой подписью является физический акт, когда избиратель вкладывает заполненный анонимный бюллетень в специальный конверт с подкладкой копировальной бумагой, на котором заранее напечатаны учетные данные избирателя. улица. Чиновник проверяет учетные данные и подписывает конверт, тем самым перенося свою подпись на бюллетень внутри через копировальную бумагу. После подписания пакет возвращается избирателю, который переносит теперь подписанный бюллетень в новый немаркированный обычный конверт. Таким образом, подписывающий не просматривает содержимое сообщения, но третья сторона может позже проверить подпись и узнать, что подпись действительна в рамках ограничений базовой схемы подписи.

Пример слепой подписи в произведениях

Слепые подписи также могут использоваться для обеспечения несвязанности, что не позволяет подписывающей стороне связать скрытое сообщение, которое она подписывает, с более поздней неслепой версией, которую она может потребовать для проверки. В этом случае перед проверкой ответ подписывающей стороны сначала "не ослепляется", чтобы подпись оставалась действительной для сообщения без ослепления. Это может быть полезно в схемах, где требуется анонимность.

Схемы слепой подписи могут быть реализованы с использованием ряда общих схем подписи с открытым ключом, например, RSA и DSA. Чтобы выполнить такую ​​подпись, сообщение сначала "ослепляют", обычно путем объединения его каким-либо образом со случайным "фактором ослепления". Скрытое сообщение передается подписывающей стороне, которая затем подписывает его, используя стандартный алгоритм подписи. Результирующее сообщение вместе с маскирующим фактором может быть позже проверено с использованием открытого ключа подписывающей стороны. В некоторых схемах слепой подписи, таких как RSA, можно даже удалить маскирующий фактор из подписи до ее проверки. В этих схемах окончательный результат (сообщение / подпись) схемы слепой подписи идентичен таковому для обычного протокола подписи.

Содержание
  • 1 Использует
  • 2 Схемы слепой подписи
    • 2.1 Слепые подписи RSA
  • 3 Опасности слепого подписания RSA
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Использует

Схемы слепой подписи находят широкое применение в приложениях, где важна конфиденциальность отправителя. Это включает в себя различные схемы «цифровых денег » и протоколы голосования.

. Например, целостность некоторой системы электронного голосования может потребовать, чтобы каждый бюллетень был сертифицирован избирательным органом, прежде чем он может быть принят для подсчет; это позволяет властям проверять учетные данные избирателя, чтобы убедиться, что ему разрешено голосовать, и что он не подает более одного бюллетеня. В то же время важно, чтобы этот орган не изучал выбор избирателей. Несвязанная слепая подпись обеспечивает эту гарантию, поскольку орган не будет видеть содержимое бюллетеней, которые он подписывает, и не сможет связать закрытые бюллетени, которые он подписывает, с незакрытыми бюллетенями, которые он получает для подсчета.

Схемы слепой подписи

Схемы слепой подписи существуют для многих протоколов подписи с открытым ключом. Ниже приведены некоторые примеры. В каждом примере подписываемое сообщение содержится в значении m. m считается легитимным вводом в функцию подписи. В качестве аналогии представьте, что у Алисы есть письмо, которое должно быть подписано органом власти (скажем, Бобом), но Алиса не хочет раскрывать содержание письма Бобу. Она может поместить письмо в конверт, выложенный копировальной бумагой, и отправить его Бобу. Боб подпишет внешнюю сторону углеродного конверта, не открывая его, а затем отправит обратно Алисе. Затем Алиса может открыть его и найти письмо, подписанное Бобом, но Боб не видел его содержимого.

Более формально схема слепой подписи - это криптографический протокол, в котором участвуют две стороны: пользователь Алиса, желающая получить подписи в своих сообщениях, и подписывающий Боб, владеющий своим секретом. ключ подписи. В конце протокола Алиса получает подпись Боба на m, но Боб ничего не узнает о сообщении. Эту интуицию незнания чего-либо сложно описать математическими терминами. Обычный подход состоит в том, чтобы показать, что для каждого (состязательного) подписывающего существует симулятор, который может выводить ту же информацию, что и подписывающий. Это похоже на определение нулевого знания в системах доказательства нулевого знания.

Слепые подписи RSA

Одна из простейших схем слепой подписи основана на подписи RSA. Традиционная подпись RSA вычисляется путем возведения сообщения m до секретного показателя d по модулю общедоступного модуля N. В слепой версии используется случайное значение r, так что r относительно простого до N (т. Е. Gcd (r, N) = 1). r повышается до общедоступной экспоненты e по модулю N, а полученное значение r e mod N {\ displaystyle r ^ {e} {\ bmod {N}}}r ^ {e} {\ bmod N} используется как маскирующий фактор. Автор сообщения вычисляет произведение сообщения и маскирующего фактора, то есть:

m ′ ≡ mre (mod N) {\ displaystyle m '\ Equiv mr ^ {e} \ (\ mathrm {mod} \ N) }m'\equiv mr^{e}\ ({\mathrm {mod}}\ N)

и отправляет полученное значение m ′ {\ displaystyle m '}m'в орган подписи. Поскольку r является случайным значением, а отображение r ↦ re mod N {\ displaystyle r \ mapsto r ^ {e} {\ bmod {N}}}r \ mapsto r ^ {e} {\ bmod N} является перестановкой, следует, что re mod N {\ displaystyle r ^ {e} {\ bmod {N}}}r ^ {e} {\ bmod N} тоже случайный. Это означает, что m ′ {\ displaystyle m '}m'не пропускает никакой информации о m. Подписывающий орган затем вычисляет слепую подпись s 'как:

s' ≡ (m ') d (m o d N). {\ displaystyle s '\ Equiv (m') ^ {d} \ (\ mathrm {mod} \ N).}s'\equiv (m')^{d}\ ({\mathrm {mod}}\ N).

s 'отправляется обратно автору сообщения, который затем может удалить маскирующий фактор, чтобы покажите s, действительную подпись RSA для m:

s ≡ s ′ ⋅ r - 1 (mod N) {\ displaystyle s \ Equiv s '\ cdot r ^ {- 1} \ (\ mathrm {mod} \ N)}s\equiv s'\cdot r^{{-1}}\ ({\mathrm {mod}}\ N)

Это работает, потому что ключи RSA удовлетворяют уравнению красный ≡ r (mod N) {\ displaystyle r ^ {ed} \ Equiv r {\ pmod {N}}}r ^ {{ed} } \ Equiv r {\ pmod {N}} и, следовательно,

s ≡ s ′ ⋅ r - 1 ≡ (m ′) dr - 1 ≡ mdredr - 1 ≡ mdrr - 1 ≡ md (mod N), {\ displaystyle s \ Equiv s '\ cdot r ^ {- 1} \ Equiv (m ') ^ {d} r ^ {- 1} \ Equiv m ^ {d} r ^ {ed} r ^ {- 1} \ Equiv m ^ {d} rr ^ {- 1} \ Equiv m ^ {d} {\ pmod {N}},}s\equiv s'\cdot r^{{-1}}\equiv (m')^{d}r^{{-1}}\equiv m^{d}r^{{ed}}r^{{-1}}\equiv m^{d}rr^{{-1}}\equiv m^{d}{\pmod {N}},

, следовательно, s действительно является сигнатурой m.

На практике обычно требуется свойство, при котором подписание одного скрытого сообщения создает не более одного действительного подписанного сообщения. Это означает, например, один голос на каждый подписанный бюллетень на выборах. Это свойство не выполняется для простой схемы, описанной выше: исходное сообщение и неслепая подпись действительны, но то же самое относится к скрытому сообщению и слепой подписи и, возможно, другим комбинациям, заданным умным злоумышленником. Решением этой проблемы является слепая подпись криптографического хэша сообщения, а не самого сообщения.

Опасности слепого подписания RSA

RSA подвергается атаке с ослеплением RSA, через которую это возможно быть обманутым в расшифровке сообщения путем слепой подписи другого сообщения. Поскольку процесс подписания эквивалентен расшифровке с помощью секретного ключа подписывающей стороны, злоумышленник может предоставить скрытую версию сообщения m {\ displaystyle m}m , зашифрованного открытым ключом подписывающей стороны, m ′ {\ Displaystyle m '}m', чтобы они подписали. Зашифрованное сообщение, как правило, представляет собой некую секретную информацию, которую злоумышленник заметил в зашифрованном виде с открытым ключом подписавшего, о которой злоумышленник хочет узнать больше. Когда злоумышленник удаляет слепоту подписанной версии, у них будет открытый текст:

m ″ = m 're (mod n) = (me (mod n) ⋅ re) (mod n) = (mr) e (mod п) {\ displaystyle {\ begin {align} m '' = m'r ^ {e} {\ pmod {n}} \\ = (m ^ {e} {\ pmod {n}} \ cdot r ^ {e}) {\ pmod {n}} \\ = (mr) ^ {e} {\ pmod {n}} \\\ end {align}}}{\begin{aligned}m''=m'r^{e}{\pmod n}\\=(m^{e}{\pmod n}\cdot r^{e}){\pmod n}\\=(mr)^{e}{\pmod n}\\\end{aligned}}

где m ′ {\ displaystyle m '}m'- это зашифрованная версия сообщения. Когда сообщение подписано, открытый текст m {\ displaystyle m}m легко извлекается:

s ′ = m ″ d (mod n) = ((mr) e (mod n)) d (mod n) = (mr) ed (mod n) = m ⋅ r (mod n), поскольку ed ≡ 1 (mod ϕ (n)) {\ displaystyle {\ begin {align} s '= m' '^ {d} {\ pmod {n}} \\ = ((mr) ^ {e} {\ pmod {n}}) ^ {d} {\ pmod {n}} \\ = (mr) ^ {ed} {\ pmod {n}} \\ = m \ cdot r {\ pmod {n}} {\ t_dv {, поскольку}} ed \ Equiv 1 {\ pmod {\ phi (n)}} \ \\ end {align}}}{\begin{aligned}s'=m''^{d}{\pmod n}\\=((mr)^{e}{\pmod n})^{d}{\pmod n}\\=(mr)^{{ed}}{\pmod n}\\=m\cdot r{\pmod n}{\t_dv{, since }}ed\equiv 1{\pmod {\phi (n)}}\\\end{aligned}}

Обратите внимание, что ϕ (n) {\ displaystyle \ phi (n)}\ phi (n) относится к функции totient Эйлера. Сообщение теперь легко получить.

m = s ′ ⋅ r - 1 (mod n) {\ displaystyle {\ begin {align} m = s '\ cdot r ^ {- 1} {\ pmod {n}} \ end {align}}}{\begin{aligned}m=s'\cdot r^{{-1}}{\pmod {n}}\end{aligned}}

Эта атака работает, потому что в этой схеме слепой подписи подписывающая сторона подписывает сообщение напрямую. Напротив, в схеме неслепой подписи подписывающая сторона обычно использует схему заполнения (например, вместо подписания самого сообщения, подписывая результат криптографической хеш-функции , примененной к сообщению), однако, поскольку подписывающая сторона не знает фактического сообщения, любая схема заполнения приведет к неверному значению, если она не засвечена. Из-за этого мультипликативного свойства RSA нельзя использовать один и тот же ключ как для шифрования, так и для подписи.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-12 10:34:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте