Анимация
JavaScript
|
Главная Библионтека (5) Пегги исполняет его просьбу. (6) Пегги и Виктор повторяют этапы (1) - (5) n раз. Помните видеокамеру в протоколе для пещеры? Здесь вы можете сделать то же самое . Виктор может записать обмен между ним и Пегги. Он не сможет использовать эту запись для убеждения Кэрол, но он всегда м о-жет сговориться с Пегги с целью создать имитатор, который подделывает информацию Пегги . Этот аргумент может быть использован, чтобы доказать, что используется доказательство с нулевым знанием . Математическая основа доказательства этого типа сложна. Проблемы и случайное преобразование должны выбираться осторожно, чтобы Виктор не получил никакой информации о решении оригинальной проблемы, даже после многих повторений протокола. Не все трудные проблемы можно использовать для доказательств с нулевым знанием, но большинство из них. Изоморфизм графа Объяснение этого понятия, пришедшего из теории графов [619, 622], может занять некоторое время. Граф представляет собой сеть линий ,соединяющих различные точки. Если два графа идентичны во всем, кроме имен точек, они называются изоморфными. Для очень больших графов доказательство их изоморфности может п о-требовать веков компьютерного времени, это одна из так называемых NP-полных проблем, рассматриваемых в разделе 11.1. Предположим, что Пегги знает об изоморфности двух графов, G1 и G1. Следующий протокол докажет Виктору знание Пегги: (1) Пегги случайным образом тасует G1, получая другой граф, Н, который изоморфен G1. Так как Пегги знает об изоморфизме Н и G1, то ей также известен изоморфизм между Н и G1. Для любого другого поиск изоморфизма между Н и G1 или Н и G1 является такой же трудной задачей, как и поиск изоморфизма между Gi и Gi. (2) Пегги посылает Н Виктору. (3) Виктор просит Пегги либо (a) доказать, что Н и Gi изоморфны, либо (b) доказать, что Н и G1 изоморфны. (4) Пегги исполняет его просьбу. Она либо: (a) доказывает, что Н и G1 изоморфны, не доказывая, что Н и G1 изоморфны, либо (b) доказывает, что Н и G1 изоморфны, не доказывая, что Н и G1 изоморфны. (5) Пегги и Виктор повторяют этапы (1) - (4) n раз. Если Пегги не знает об изоморфизме между G1 и G1, она не сможет создать граф Н, изоморфный обоим графам. Она может создать либо граф, который изоморфен Gi, либо граф, который изоморфен Gi. Как и в предыдущем примере у нее только 50 шансов из 100 угадать, какое доказательство потребует от нее Виктор на этапе (3). Этот протокол не дает Виктору никакой полезной информации, помогающей ему из ответов Пегги устан овить изоморфизм между Gi и Gi. Так как Пегги для каждого нового раунда протокола генерирует новый граф Н, Виктор не сможет получить информацию независимо от того, из скольких раундов будет состоять их протокол . Он не сможет из ответов Пегги установить изоморфизм между Gi и Gi. В каждом раунде Виктор получает новое случайное преобразование Н, вместе с изоморфизмом между Н и Gi или Gi. Виктор может также создать что-то подобное самостоятельно. Так как Виктор может создать имитацию протокола, это действительно доказательство с нулевым знанием . Гамильтоновы циклы Вариант этого примера был впервые представлен Мануэлем Блюмом (Manuel Blum) [196]. Пегги знает кружной, продолжительный путь вдоль линий графа, который проходит через каждую точку только один раз . Этот путь называется гамильтоновым циклом. Поиск гамильтонова цикла является другой тяжелой задачей . У Пегги есть эта информация - она, возможно, получила ее создав граф с конкретным гамильтоновым циклом -и она хочет доказать Виктору, что эта информация ей известна . Пегги знает гамильтонов цикл графа, G. Виктору известен G, но не его гамильтонов цикл. Пегги хочет доказать Виктору, что она знает гамильтонов цикл, не раскрывая самого цикла . Вот как она должна действовать: (1) Пегги случайным образом преобразовывает G. Она передвигает точки и изменяет их метки, создавая н о- вый граф, H. Поскольку G и H топологически изоморфны (т.е., это один и тот же граф), если ей известен гамильтонов цикл G, то она легко может найти гамильтонов цикл H. Если она не сама создает H, определение изоморфизма между двумя графами будет являться другой сложной проблемой, решение которой также потребует веков компьютерного времени. Затем она шифрует H, получая H. (Должно использоваться вероятностное шифрование каждой строчки H, то есть, шифрованный 0 или шифрованная 1 для каждой линии H.) (2) Пегги передает Виктору копию H. (3) Виктор просит Пегги либо: (a) доказать ему, что Н - это зашифрованная изоморфная копия G, либо (b) показать ему гамильтонов цикл для Н. (4) Пегги исполняет его просьбу. Она либо: (a) доказывает, что Н - это зашифрованная изоморфная копия G, раскрывая преобразования и расши ф-ровывая все, не показывая гамильтонов цикл для G или Н, либо (b) показывает гамильтонов цикл для Н, расшифровывая только те строки, которые образуют гамил ь-тонов цикл, не доказывая, что Н и G топологически изоморфны. (5) Пегги и Виктор повторяют этапы (1) - (4) n раз. Если Пегги не обманывает, она сможет предъявить Виктору одно из доказательств на этапе (3) . Однако, если гамильтонов цикл для G ей неизвестен, она не сможет создать зашифрованный граф H, который удовлетворяет обоим доказательствам. Лучшее, что она может сделать - это создать или граф, изоморфный G, или граф с таким же числом точек и линий и правильным гамильтоновым циклом . Хотя ее шансы угадать, какое доказательство потребует Виктор на этапе (3), составляют 50 процентов, Виктор может повторить протокол достаточное число раз, убеждаясь, что Пегги знает гамильтонов цикл для G. Параллельные доказательства с нулевым знанием В базовом протоколе с нулевым знанием используется n обменов информацией между Пегги и Виктором . Почему бы не выполнить их параллельно : (1) Пегги использует свою информацию и n случайных чисел для преобразования трудной проблемы в n различных изоморфных проблем. Затем она с помощью своей информации и случайных чисел решает n новых трудных проблем. (2) Пегги вручает решение n новых трудных проблем. (3) Пегги раскрывает Виктору эти n новых трудных проблем. Виктор не может воспользоваться этими новыми проблемами для получения информации об оригинальных проблемах или их решении. (4) Для каждой новой трудной проблемы Виктор просит Пегги либо (a) доказать ему, что старая и новая проблемы изоморфны, либо (b) раскрыть решение, врученное на этапе (2), и доказать, что оно является решением данной новой проблемы. (5) Пегги исполняет его просьбу для каждой новой проблемы. К несчастью, все не так просто. Этот протокол, в отличие от предыдущего, не обладает такими же свойств а-ми нулевого знания. На этапе (4) Виктор может потребовать, чтобы доказательство было представлено в виде значения однонаправленной хэш-функции всех значений, врученных на первом этапе, делая невозможным им и-тацию записи протокола. Это тоже нулевое знание, но другого рода . На практике оно представляется безопасным, но никто не знает, как это доказать. Мы действительно знаем только то, что при определенных условиях определенные протоколы для определенных проблем могут быть выполнены параллельно без потери свойства нулевого знания [247, 106, 546, 616]. Пеинтерактивные доказательства с нулевым знанием Кэрол невозможно убедить, потому что она не участвует в интерактивном процессе протокол. Для убеждения Кэрол и других заинтересованных лиц нам нужен неинтерактивный протокол . Для неинтерактивных доказательств с нулевым знанием был придуман ряд протоколов [477, 198, 478, 197], которые не требуют непосредственного взаимодействия. Пегги может опубликовать их и, таким образом, док а-зать свое знание всем, у кого найдется время это проверить Базовый протокол похож на параллельное доказательство с нулевым знанием, но место Виктора занимает однонаправленная хэш-функция: (1) Пегги использует свою информацию и n случайных чисел для преобразования трудной проблемы в n различных изоморфных проблем. Затем она с помощью своей информации и случайных чисел решает n новых трудных проблем. (2) Пегги вручает решение n новых трудных проблем. (3) Пегги использует все эти вручения в качестве входа для однонаправленной хэш-функции. (В конце концов эти вручения - не что иное, как строки битов.) Затем она сохраняет первые n битов полученного значения однонаправленной хэш-функции. (4) Пегги берет n битов, полученных на этапе (3). По очереди для каждой n-ой трудной проблемы она берет n-ый бит и (a) если бит равен 0, доказывает, что старая и новая проблемы изоморфны, либо (b) если бит равен 1, раскрывает решение, врученное на этапе (2), и доказывает, что оно является реш е-нием данной новой проблемы. (5) Пегги опубликовывает все решения, врученные на этапе (2), и все доказательства, полученные на этапе (4). (6) Виктор, Кэрол и все остальные заинтересованные лица проверяют, что этапы (1)-(5) выполнены правил ь-но. Это впечатляет: Пегги может опубликовать некоторые данные, которые не содержат никакой информации о ее секрете, но могут кого угодно убедить в существовании самого секрета . Этот протокол может быть использован проверка определена как вычисление однонаправленной хэш-функции первоначальных сообщений и подп и-сываемого сообщения. Эта схема работает, потому что однонаправленная хэш-функция действует как беспристрастный генератор случайных битов. Чтобы мошенничать, Пегги нужно уметь предсказывать результат однонаправленной хэш-функции. (Помните, если решение трудной проблемы ей неизвестно, она может сделать на этапе (4) либо (a), либо (b), но не оба действия одновременно.) Если она каким-то образом узнает, выполнение какого действия потребует от нее однонаправленная хэш-функция, то она сможет смошенничать . Однако, Пегги не сможет заставить однонаправленную хэш-функцию выдать определенный бит или догадаться, какой бит будет получен . Однонаправленная хэш-функция по сути является заменителем Виктора в случайном выборе одного из двух доказательств на этапе (4). В неинтерактивном протоколе должно быть гораздо больше итераций в последовательности запрос/ответ . Пегги, а не Виктор, отбирает трудные проблемы с помощью случайных чисел . Она может подбирать различные проблемы, следовательно, и различные векторы вручения, до тех пор , пока хэш-функция не выдаст что-то, нужное Пегги. В интерактивном протоколе 10 итераций - вероятность мошенничества Пегги составит 1 шанс из 2 10 (1 из 1024) - может быть достаточно. Однако, для неинтерактивных доказательств с нулевым знанием этого не хватит. Помните, что Мэллори всегда может выполнить на этапе (4) либо (a), либо (b). Он может, выполняя этапы (1)-(3), попытаться догадаться, что его попросят сделать, и посмотреть, правильно ли его предположение. Если нет, он попробует снова и снова. Сделать 1024 предположения на компьютере нетрудно. Для предотвращения такого вскрытия грубым взломом для неинтерактивных протоколов нужно 64 или даже 128 итераций. Главная идея состоит в использовании однонаправленной хэш-функции - Пегги не может предсказать выход хэш-функции, потому что она не может предсказать ее вход. Вручения, используемые на входе, становятся и з-вестны только после решения новых проблем. Общие замечания Блюм (Blum) доказал, что любая математическая теорема может быть преобразована в граф, такой, что д о-казательство теоремы будет эквивалентно доказательству существования гамильтонова цикла для этого графа . В общем виде то, что для любого NP-полного утверждения есть доказательство с нулевым знанием, использу ю-щее однонаправленные функции и, следовательно, хорошие алгоритмы шифрования, доказано в [620]. Любое математическое доказательство может быть преобразовано в доказательство с нулевым знанием . Используя эту методику, исследователь может доказать миру, что ему известно доказательство конкретной теоремы, не ра скрывая самого решения. Блюм мог опубликовать свои результаты, не раскрывая их . Также существуют доказательства с минимальным раскрытием [590]. Для доказательства с минимальным раскрытием выполняются следующие свойства: 1. Пегги не может обмануть Виктора. Если Пегги не знает доказательства, ее шансы убедить Виктора в 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [ 26 ] 27 28 29 30 31 32 33 34 35 |