Further Pre-Conditions for Discrete Logarithm
authorChristoph Fuerst <ch.fuerst@gmx.at>
Thu, 6 Apr 2017 19:32:04 +0000 (21:32 +0200)
committerChristoph Fuerst <ch.fuerst@gmx.at>
Thu, 6 Apr 2017 19:32:04 +0000 (21:32 +0200)
discrete_log.txt

index 047ffb9..c64a129 100644 (file)
@@ -33,7 +33,10 @@ proc InvModP(a:ℕ[K^2],p:prime): prime
 }
 
 proc discrete_log(p:prime,g:nat,a:nat,m:nat): res
-   requires p>1 ∧ isPrime(p) ∧ // p is a prime greater than 1
+   requires 1 < p ∧ isPrime(p) ∧ // p is a prime greater than 1
+            1 < g ∧ g < p ∧ 
+            1 < a ∧ ¬divides(p,a) ∧
+            8 < m ∧ 
             ∀b:nat. (0 < b ∧ b < p-1) ⇒ (g^b % p ≠ 1) ∧  g^(p-1)%p = 1 ∧ // g has order p-1
             0 ≤ a ∧ a < p; // a is in ℤ/pℤ
    ensures (g^result)%p = a;