- dhPk (sk : Bytes) : Bytes
- dh (pk sk : Bytes) : Bytes
Instances
@[instance_reducible]
Equations
- DY.DiffieHellman'.DhPk.instFunctorSizeOfSubF = { sizeOf := fun {t : Type} [SizeOf t] (x : DY.DiffieHellman'.DhPk.SubF t) => match x with | { sk := sk } => sizeOf sk }
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
@[instance_reducible]
Instances For
@[instance_reducible]
Equations
Instances For
@[reducible, inline]
Equations
- x.pack = DY.BytesView.pack x
Instances For
@[reducible, inline]
Equations
- x.pack = DY.BytesView.pack x
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Instances For
Equations
Instances For
theorem DY.DiffieHellman'.attacker_knows_dhPk [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [BaseAttackerKnowledge] [AttackerKnowledge] [AttackerKnowledge.Has attackerKnowledge] (sk : Bytes) (tr : ExecTrace) :
sk.AttackerKnows tr → (dhPk sk).AttackerKnows tr
theorem DY.DiffieHellman'.attacker_knows_dh [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [BaseAttackerKnowledge] [AttackerKnowledge] [AttackerKnowledge.Has attackerKnowledge] (pk sk : Bytes) (tr : ExecTrace) :
pk.AttackerKnows tr → sk.AttackerKnows tr → (dh pk sk).AttackerKnows tr
Equations
- DY.DiffieHellman'.Broken.dhPkInvert pk = match pk.view? DY.DiffieHellman'.DhPk.SubF with | some { sk := sk } => some sk | none => none
Instances For
theorem DY.DiffieHellman'.Broken.dhPkInvert_dhPk [BytesFunctor] [BytesFunctor.Has SubF] (sk : Bytes) :
theorem DY.DiffieHellman'.Broken.dhPk_dhPkInvert [BytesFunctor] [BytesFunctor.Has SubF] (pk : Bytes) :
- brokenPk : Bytes
Instances For
@[instance_reducible]
Equations
Instances For
def DY.DiffieHellman'.Broken.baseAttackerKnowledge.internal [BytesFunctor] [ExecTraceTypes] (id✝ : Fin 1) :
Equations
Instances For
@[instance_reducible]
Equations
Instances For
def DY.DiffieHellman'.Broken.ThisDhPkHasBeenBroken [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] (brokenPk : Bytes) (tr : ExecTrace) :
Equations
- DY.DiffieHellman'.Broken.ThisDhPkHasBeenBroken brokenPk tr = DY.Trace.EventLogged { brokenPk := brokenPk } tr
Instances For
def DY.DiffieHellman'.Broken.OneDhPkHasBeenBroken [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] (tr : ExecTrace) :
Equations
- DY.DiffieHellman'.Broken.OneDhPkHasBeenBroken tr = ∃ (brokenPk : DY.Bytes), DY.DiffieHellman'.Broken.ThisDhPkHasBeenBroken brokenPk tr
Instances For
def DY.DiffieHellman'.Broken.label [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] (brokenPk : Bytes) :
Equations
- DY.DiffieHellman'.Broken.label brokenPk = { isCorrupt := fun (tr : DY.ExecTrace) => DY.DiffieHellman'.Broken.ThisDhPkHasBeenBroken brokenPk tr, isCorruptLater := ⋯ }
Instances For
def DY.DiffieHellman'.Broken.breakDhPk [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Network.ExecEntryT] (msgHandle : Nat) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def DY.DiffieHellman'.Broken.breakDhPk.reachability [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Network.ExecEntryT] :
Equations
- DY.DiffieHellman'.Broken.breakDhPk.reachability = DY.ReachabilityConfig.make fun (handle : Nat) => DY.DiffieHellman'.Broken.breakDhPk handle
Instances For
def DY.DiffieHellman'.DhPk.invariants [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has DiffieHellman'.SubF] [ExecTraceTypes.Has Broken.ExecEntryT] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem DY.DiffieHellman'.dhPk.WellFormed [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has DhPk.invariants] (sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman'.dhPk.label [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has DhPk.invariants] (sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman'.dhPk.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has DhPk.invariants] (sk : Bytes) (tr : ProofTrace) :
sk.Invariant tr → (sk.label tr).canFlow (Broken.label (dhPk sk)) (Trace.erase tr) → (dhPk sk).Invariant tr
def DY.DiffieHellman'.Dh.invariants [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has DiffieHellman'.SubF] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
def DY.DiffieHellman'.invariants [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] :
Equations
Instances For
def DY.DiffieHellman'.invariants.internal [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] (id✝ : Fin 2) :
Equations
Instances For
noncomputable def DY.Bytes.dhSkLabel' [BytesFunctor] [BytesFunctor.Has DiffieHellman'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] (pk : Bytes) (tr : ProofTrace) :
Equations
- pk.dhSkLabel' tr = DY.Bytes.xxxLabel DY.DiffieHellman'.extractDhSk✝ pk tr
Instances For
theorem DY.Bytes.dhSkLabel'_later [BytesFunctor] [BytesFunctor.Has DiffieHellman'.SubF] [ExecTraceTypes] [ProofTraceTypes] [ExecTraceTypes.Has DiffieHellman'.Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has DiffieHellman'.invariants] [GetLabelLater] (b : Bytes) (tr1 tr2 : ProofTrace) :
b.WellFormed tr1 → tr1 ≤ tr2 → b.dhSkLabel' tr1 = b.dhSkLabel' tr2
theorem DY.Bytes.dhSkLabel'_later_fast [BytesFunctor] [BytesFunctor.Has DiffieHellman'.SubF] [ExecTraceTypes] [ProofTraceTypes] [ExecTraceTypes.Has DiffieHellman'.Broken.ExecEntryT] [BytesInvariants] [BytesInvariantsProofs] [BytesInvariants.Has DiffieHellman'.invariants] (b : Bytes) (tr1 tr2 : ProofTrace) :
b.Invariant tr1 → tr1 ≤ tr2 → b.dhSkLabel' tr1 = b.dhSkLabel' tr2
@[simp]
theorem DY.DiffieHellman'.dh.WellFormed [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman'.dh.label [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman'.dh.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) (tr : ProofTrace) :
instance DY.DiffieHellman'.instHoareTriplePureBytesDhPkAndInvariantCanFlowLabelLabelEraseEqLabelPub [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [ProofTraceTypes] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has invariants] (sk : Bytes) :
HoareTriplePure (dhPk sk)
(fun (tr : ProofTrace) => sk.Invariant tr ∧ (sk.label tr).canFlow (Broken.label (dhPk sk)) (Trace.erase tr))
fun (res : Bytes) (tr : ProofTrace) => res.Invariant tr ∧ res.label tr = Label.pub
instance DY.DiffieHellman'.instHoareTriplePureBytesDhAndInvariantCanFlowLabelLabelDhPkErasePublishableEqLabelJoinDhSkLabel' [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [ProofTraceTypes] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) :
HoareTriplePure (dh pk sk)
(fun (tr : ProofTrace) =>
sk.Invariant tr ∧ (sk.label tr).canFlow (Broken.label (dhPk sk)) (Trace.erase tr) ∧ pk.Publishable tr)
fun (res : Bytes) (tr : ProofTrace) => res.Invariant tr ∧ res.label tr = (sk.label tr).join (pk.dhSkLabel' tr)
@[instance_reducible]
instance DY.DiffieHellman'.Broken.instEventInvBrokenDhEvent [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] :
Equations
- DY.DiffieHellman'.Broken.instEventInvBrokenDhEvent = { invariant := fun (x : DY.ProofTrace) (x_1 : DY.DiffieHellman'.Broken.BrokenDhEvent) => True }
@[instance_reducible]
Equations
Instances For
instance DY.DiffieHellman'.Broken.instReachableImpliesInvariantReachability [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] [BytesInvariants] [BytesFunctor.Has SubF] [ExecTraceTypes.Has ExecEntryT] [BytesInvariants.Has invariants] [BytesInvariantsProofs] [ExecTraceTypes.Has Network.ExecEntryT] [ProofTraceTypes.Has ProofEntryT] [ProofTraceTypes.Has Network.ProofEntryT] [TraceInvariant.Has Network.ProofEntryT] [TraceInvariant.Has ProofEntryT] :