Если окажется, что человек, выписавший банковский чек, попытался обмануть продавца, то банк может з а-хотеть личность этого человека. Чтобы сделать это, придется вернуться от физических аналогий в мир крипт о-графии.
Чтобы спрятать имя Алисы в электронном чеке, можно воспользоваться методикой разделения секрета .
(1) Алиса готовит п анонимных денежных чеков на заданную сумму.
Каждый из чеков содержит уникальную строку, X, полученную случайным образом и достаточно длинную, чтобы вероятность появления двух одинаковых строк была пренебрежимо мала .
На каждом чеке есть также п пар битовых строк идентификации, /;, 12, ..., /n. (Именно так, п различных пар на каждом чеке.) Каждая из этих пар генерируется следующим образом: Алиса создает строку, содержащую ее имя, адрес и прочие сведения, требуемые банком . Затем она делит эту строку на две части, используя протокол деления секрета (см. раздел 3.6) и вручает каждую часть, используя протокол вручения битов.
Например, 137 состоит из двух частей: /37£ и hiR ■ Каждая часть представляет собой пакет врученных битов, который Алису могут попросить открыть, и чье открытое содержание может быть мгновенно пров е-рено. Любая пара (например, /37£ и hiR > но не hiL и h%R )> раскрывает личность Алисы. Каждый из чеков выглядит следующим образом: Сумма
Уникальная строка: X
Строки идентификации: 1 = (7j , Ix )
/2=(/2£Д2я)
In=VnLJnE)
(2) Алиса маскирует все п чеков с помощью протокола слепой подписи и относит чеки в банк.
(3) Банк просит Алису снять маскировку с п-1 денежных чеков и убеждается, что все они правильно офор м-лены. Банк проверяет сумму, уникальную строку и просит Алису раскрыть все строки идентификации.
(4) Если банк удовлетворен, не обнаружив попыток мошенничества, он подписывает оставшийся замаскир о-ванный денежный чек. Банк возвращает замаскированный чек Алисе и списывает сумму с ее счета.
(5) Алиса снимает маскировку с чека и тратит его у продавца.
(6) Продавец проверяет банковскую подпись, убеждаясь в законности денежного чека .
(7) Продавец случайным образом просит Алису раскрыть либо левые, либо правые половины всех строк идентификации на чеке. По сути, продавец выдает Алисе случайную и-битовую строку-селектор,Ъи Ъ2, ..., Ьп. Левую или правую половину /, откроет Алиса, зависит от значения й„ 0 или 1.
(8) Алиса выполняет это.
(9) Продавец относит денежный чек в банк.
(10) Банк проверяет свою подпись и по своей базе данных убеждается, что денежный чек с такой уникальной
строкой ранее не депонировался. Если это так, банк начисляет указанную сумму на счет продавца и запи-
сывает уникальную строку в базу данных.
(11) Если уникальная строка уже есть в базе данных, банк отказывается принять денежный чек и сравнивает идентификационную строку на денежном чеке с хранимой в базе данных. Если они совпадают, то банк убеждается, что чек был скопирован продавцом. Если идентификационные строки различны, то банк зн а-ет, что чек был скопирован человеком, который готовил этот денежный чек. Так как второй продавец, п о-лучивший чек, выдал Алисе другую, чем первый, строку-селектор, банк обнаружит, что для какой-то из позиций Алиса открыла левую половину одному продавцу, а правую - другому. Выполнив над этими п о-ловинами строки идентификации операцию XOR, банк определит личность Алисы.
Это весьма интересный протокол, поэтому посмотрим на него с разных сторон .
Может ли Алиса смошенничать? Ее электронные деньги представляют собой просто строку битов, которую она легко может скопировать. Потратить их в первый раз - не проблема, она просто выполнит протокол, и все пройдет без проблем. Продавец выдаст ей на этапе (7) случайную и-битовую строку-селектор, и Алиса откроет либо левую, либо правую половину каждой /, на этапе (8). На этапе (10) банк запишет все эти данные вместе с уникальной строкой денежного чека.
Когда она попытается использовать те же электронные деньги второй раз, продавец (тот же или иной) выдаст ей на этапе (7) другую случайную й-битовую строку-селектор. Алиса должна выполнить этап (8), ее отказ немедленно встревожит продавца. Теперь, когда продавец приносит деньги в банк на этапе (10), банк немедленно заметит, что денежный чек с этой уникальной строкой уже был депонирован . Банк сравнивает открытые половины строк идентификации. Вероятность совпадения двух случайных строк-селекторов составляет один шанс из 2П, этого не случится до следующего оледенения. Теперь банк находит пару, первая половина которой была открыта в первый раз, а вторая - во второй, выполняет над этими половинами операцию XOR и извлекает имя Алисы. Так банк узнает, кто попытался воспользоваться чеком дважды .
Что этот протокол не мешает Алисе мошенничать, но ее мошенничество почти наверняка будет обнаружено . Смошенничав, Алиса не сможет сохранить в тайне свою личность. Она не может изменить ни уникальную строку, ни какую-нибудь из строк идентификации, иначе испортится банковская подпись, и продавец немедле н-но заметит это на этапе (6).
Алиса могла бы попытаться подсунуть банку плохой денежный чек, такой, на котором строки идентифик а-ции не раскрывают ее имени, или, еще лучше, раскрывают имя кого-то еще . Вероятность, что такая уловка проскочит мимо банка на этапе (3), составляет 1 из и. Это не невозможно, но если штраф за мошенничество достаточно суров, Алиса не будет испытывать судьбу. Или вы можете увеличить число избыточных чеков, предъявляемых Алисой на этапе (1).
Может ли смошенничать продавец? Его шансы даже хуже. Он не может депонировать денежный чек два ж-ды, банк заметит повторное использование строки-селектора. Он не сможет мошенничать, обвиняя Алису, так как только она может открыть любую строку идентификации .
Не поможет обмануть банк и любой сговор между Алисой и продавцом . Если банк подписал денежный чек с уникальной строкой, он может быть уверен в том, что этот чек будет оплачен только один раз .
А как насчет банка? Может ли он вычислить, что денежный чек, полученный от продавца, это и есть тот с а-мый чек, который был подписан для Алисы? На этапах (2)-(5) Алиса защищена протоколом слепой подписи. Банк не сможет связать Алису и чек, даже если он полностью сохраняет запись каждой транзакции . Более того, даже объединившись, банк и продавец не смогут установить личность Алисы . Алиса может пройтись по магазину и, оставаясь полностью анонимной, купить то, что ей надо .
Может смошенничать Ева. Если она сможет подслушать линию связи между Алисой и продавцом, и если она сможет добраться до банка раньше продавца, она сможет первой депонировать чек . Банк примет его и, что хуже, когда продавец попытается депонировать свой чек, то он будет обвинен в мошенничестве . Если Ева украдет электронные деньги Алисы и успеет потратить их прежде Алисы, то в мошенничестве будет обвинена Алиса. Не существует способа помешать этому, и это является прямым следствием анонимности наличных . И Алиса, и продавец должны защищать свои биты так, как они защищали бы свои деньги .
Место этого протокола где-то между протоколом с посредником и самодостаточным протоколом . И Алиса, и продавец доверяют банку в том, что касается денег, но Алиса не должна доверять банку сведения о своих п о-купках.