def
definition
securityLevelRatio
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Cryptography.KeyLengthFromPhiLadder on GitHub at line 41.
browse module
All declarations in this module, on Recognition.
explainer page
used by
formal source
38noncomputable section
39
40/-- Security level spacing on log₂-key-length ladder: φ^(1/2). -/
41noncomputable def securityLevelRatio : ℝ := Real.sqrt phi
42
43theorem securityLevelRatio_pos : 0 < securityLevelRatio := by
44 unfold securityLevelRatio; exact Real.sqrt_pos.mpr phi_pos
45
46theorem securityLevelRatio_gt_one : 1 < securityLevelRatio := by
47 unfold securityLevelRatio
48 rw [show (1 : ℝ) = Real.sqrt 1 from (Real.sqrt_one).symm]
49 exact Real.sqrt_lt_sqrt (by norm_num) one_lt_phi
50
51/-- Standard symmetric key lengths (bits). -/
52def keyLength80 : ℕ := 80
53def keyLength128 : ℕ := 128
54def keyLength256 : ℕ := 256
55
56theorem keyLength_doubling : keyLength128 * 2 = keyLength256 := by
57 unfold keyLength128 keyLength256; norm_num
58
59structure KeyLengthCert where
60 ratio_pos : 0 < securityLevelRatio
61 ratio_gt_one : 1 < securityLevelRatio
62 key_doubling : keyLength128 * 2 = keyLength256
63
64noncomputable def cert : KeyLengthCert where
65 ratio_pos := securityLevelRatio_pos
66 ratio_gt_one := securityLevelRatio_gt_one
67 key_doubling := keyLength_doubling
68
69theorem cert_inhabited : Nonempty KeyLengthCert := ⟨cert⟩
70
71end