One-time pad over a finite group
DefinitionThe group one-time pad#✓fully proved
Let \(G\) be a finite group. The group one-time pad on \(G\) is the private-key encryption scheme with messages, keys and ciphertexts in \(G\) whose key \(k\) is drawn uniformly from \(G\), which encrypts a message \(m\) as \(k m\), and which decrypts a ciphertext \(c\) as \(k^{-1} c\).
noncomputable def groupOTP : EncScheme G G G :=
.ofPure (Cslib.Probability.PMF.uniformOfFintype G) (· * ·) (fun k c => k⁻¹ * c) fun k m => by simp
TheoremGroup one-time pad ciphertexts are uniform#✓fully proved
Let \(G\) be a finite group. For every message \(m \in G\), the ciphertext of \(m\) under the group one-time pad on \(G\), whose key is drawn uniformly from \(G\), is uniformly distributed on \(G\).
theorem groupOTP_ciphertextDist_eq_uniform (m : G) :
(groupOTP G).ciphertextDist m = Cslib.Probability.PMF.uniformOfFintype G
noncomputable def groupOTP : EncScheme G G G :=
.ofPure (Cslib.Probability.PMF.uniformOfFintype G) (· * ·) (fun k c => k⁻¹ * c) fun k m => by simp
CSLibExt/Crypto/Protocols/PerfectSecrecy/GroupOneTimePad.lean:43
Uses 1 · Used by 1
TheoremThe group one-time pad is perfectly secret#✓fully proved
Let \(G\) be a finite group. The group one-time pad on \(G\) is perfectly secret: for every probability distribution on messages in \(G\) and every ciphertext \(c\) that occurs with positive probability, the conditional distribution of the message given that the ciphertext is \(c\) equals the prior distribution of the message.
theorem groupOTP_perfectlySecret : (groupOTP G).PerfectlySecret
noncomputable def groupOTP : EncScheme G G G :=
.ofPure (Cslib.Probability.PMF.uniformOfFintype G) (· * ·) (fun k c => k⁻¹ * c) fun k m => by simp
CSLibExt/Crypto/Protocols/PerfectSecrecy/GroupOneTimePad.lean:43
Sources
- Katz and Lindell, Lemma 11.15.
Uses 2
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.