Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Унру Д. — Квантовые языки программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
25.49 Кб
Скачать

3.2. Языки для параллельных процессов

Как мы видели в разделе, посвящённом обсуждении мотивации, важным приложением квантовых языков программирования является квантовая криптография. Однако, поскольку криптографический протокол обычно задействует двух или более лиц, которые действуют параллельно и взаимодействуют друг с другом, язык программирования для специфицирования протокола должен иметь возможности для передачи сообщений между несколькими параллельными процессами. Класс языков, в которых есть средства для организации взаимодействия, определяется исчислениями процессов. Примерами исчислений процессов являются QPAlg [LJ04] и CQP [GN04] (см. раздел 3.6). Однако для языков с параллельными процессами возникают следующие проблемы: поскольку в самых реалистичных сценариях компьютеры синхронизированы друг с другом не точно, возникает так называемое состояние гонки, то есть два процесса одновременно посылают сообщения в третий процесс, и какое сообщение достигнет своего назначения первым? Для того чтобы определить для исчисления процессов формальную семантику, необходимо ответить на подобные вопросы. Наиболее простоей решение, которое используется и в [LJ04], и в [GN04], — использование недетерминизма: протокол удовлетворяет требование только в случае, если требование гарантировано, даже в случае если в любой точке исполнения может быть принято произвольное решение по расстановке сообщений в очередь. Из этого следует весьма простое моделирование, однако становится ясно, что недетерминированная расстановка приоритетов является слишком строгой для моделирования при анализе криптографических протоколов, которые имеют низкую вероятность отказа. Это показывает следующий пример.

Представим, что в большом квантовом протоколе на каком-то этапе возникает следующая ситуация. У стороны A есть классический секрет k (то есть ключ). Если третья сторона E хочет угадать этот ключ, ей необходимо взломать протокол. А теперь, в условиях недетерминированной расстановки приоритетов, мы не можем гарантировать, что E не получит знание о ключе (даже в случае, если A не использовала секрет k). Представим, что E выполняет следующий эксперимент: она посылает пары сообщений 1 и 0 самой себе и наблюдает за тем, какие сообщения придут первыми. Это даёт стороне E строку битов s. Недетерминированная расстановка приоритетов не исключает вероятности того, что s = k, из чего следует, что E может получить k. Так что недетерминированная расстановка приоритетов настолько строга, что из этого следует, что никакая классическая информация не может остаться в секрете.

Необходимо отметить, что эта же проблема имеется и в классических вероятностных протоколах. Решением является моделирование расстановки приоритетов в качестве такого процесса, который запрашивается для каждого решения по определению приоритетности (для классического случая см., например, [MMS03]). В этом случае протокол станет безопасным, если он дополнительно выполнит некоторые свойства безопасности для всех расстановщиков приоритета. В соответствии с нашей информацией такие подходы ещё даже не исследовались в применении к квантовым исчислениям процессов (однако в работе [Unr04c] специфицирована модель квантовых протоколов с внешним расстановщиком приоритетов, который основан на классической модели [BPW04]; но в этой модели не специфицировано никакого языка программирования).