Вы определяете безопасность через игру, в которую играют между претендентом и противником, и цель противника состоит в том, чтобы выиграть игру. Оракулы — это возможности, которые даны противнику, например, Тестовый оракул позволяет «реализовать» вызов противнику. Все оракулы контролируются претендентом, и если вы находитесь в модели случайного оракула, то претендент управляет хэш-функцией, то есть случайным оракулом, и обычно может программировать ответы этому оракулу (это означает, что он может выбирать, как отвечать, как пока ответы выглядят одинаково случайными для противника и согласуются с предыдущими запросами). Так что на самом деле ваша коробка вокруг претендента должна также покрывать все оракулы слева, поскольку они контролируются претендентом.
То, что вы делаете, когда хотите доказать безопасность, т. е. показать, что не может быть эффективного противника, который выигрывает игру с некоторой немаловажной вероятностью, вы показываете, что претендент может «симулировать» всю среду, т. е. оракулов, для противника таким образом, что противник не заметен, но где для победы в игре противнику потребуется решить какую-то проблему, которая считается сложной.Следовательно, в самом простом случае вы можете построить прямое сокращение, в котором вы можете показать, что претендент может «подключиться» к внешнему претенденту (для какой-то предполагаемой сложной проблемы, например, CPA-безопасность схемы шифрования) и, например, направить все свои запросы Enc() внешнему претенденту, и противник, выигравший эту игру, также выиграет «внешнюю» игру (таким образом, противореча предполагаемой безопасности CPA). Также может быть так, что заявитель может напрямую внедрить некоторое предположение о сложности, например, DDH, путем получения экземпляра проблемы от внешнего претендента, например, претендента DDH.
Как правило, в протоколах обмена ключами, которые являются не только пассивно безопасными (простой DH может быть показан под DDH), доказательство безопасности будет работать через последовательность «гибридных игр», где игра в безопасность изменяется шаг за шагом (каждый Утверждается, что шаг не заметен противнику на основании некоторого предположения о сложности, например, безопасности CPA), пока не будет достигнута игра, в которой вывод будет легким. В протоколах обмена ключами это обычно будет переходом от варианта игры, в котором мы жестко запрограммируем b=0, к варианту игры, в котором мы жестко закодируем b=1.