Asymmetric Encryption Schemes. #
This file defines a type AsymmEncAlg spec M PK SK C
to represent an protocol
for asymmetric encryption using oracles in spec
, with message space M
,
public/secret keys PK
and SK
, and ciphertext space C
.
An AsymmEncAlg
with message space M
, key spaces PK
and SK
, and ciphertexts in C
.
spec
is the available oracle set and m
is the monad used to execute the oracle calls.
Extends ExecutionMethod spec m
, in most cases will be ExecutionMethod.default
.
- keygen : m (PK × SK)
- encrypt (pk : PK) (msg : M) : m C
Instances For
Alias of AsymmEncAlg
.
An AsymmEncAlg
with message space M
, key spaces PK
and SK
, and ciphertexts in C
.
spec
is the available oracle set and m
is the monad used to execute the oracle calls.
Extends ExecutionMethod spec m
, in most cases will be ExecutionMethod.default
.
Equations
Instances For
A SymmEncAlg
is complete if decrypting an encrypted message always returns that original
message, captured here by a guard
statement.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Perfectly correct if messages never fail to decrypt back to themselves for any message.
Equations
- encAlg.PerfectlyCorrect = ∀ (msg : M), [⊥|encAlg.CorrectExp msg] = 0
Instances For
Oracle that uses a secret key to respond to decryption requests.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two oracles for IND-CCA Experiment, the first for decrypting ciphertexts, and the second for getting a challenge from a pair of messages.
Instances For
Implement oracles for IND-CCA security game. A state monad is to track the current challenge, if it exists, and is set by the adversary calling the second oracle. The decryption oracle checks to make sure it doesn't decrypt the challenge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- main : PK → OracleComp encAlg.IND_CCA_oracleSpec Bool
Instances For
Equations
- One or more equations did not get rendered due to their size.