Description
I just realized there is an predicate attack against our current DEAP impl we overlooked which doesn't require malicious garbling or OT to perform.
The Follower
simply has to choose different inputs for each execution. This depends on the function in question but generally the follower can select different inputs such that:
where Follower
and Leader
inputs respectively. This leaks an arbitrary predicate of
This attack is also present in standard Dual-ex, but we overlooked mitigating it. Fortunately the mitigation is relatively simple (but will require some work).
We need to implement the CommittedReceiver
counter-part to our CommittedSender
impl. Then during DEAP finalization, we can check that the Follower
provided the same inputs to both executions by validating their OT choices.
It's still not clear whether this is something we need to mitigate for our application, the Follower
s only input is the PMS share to the PRF and it seems that it would be infeasible to select a predicate that affects the AES-CTR circuit.