iterate from 1 to m

This commit is contained in:
filifa 2025-09-10 18:54:01 -04:00
parent dc952746a9
commit c9cb78428f
1 changed files with 4 additions and 1 deletions

View File

@ -23,6 +23,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
// FIXME: order and generator may not be the right names here
var discreteLogOrder string var discreteLogOrder string
var discreteLogGenerator string var discreteLogGenerator string
var discreteLogElement string var discreteLogElement string
@ -38,11 +39,12 @@ func ceilSqrt(x *big.Int) *big.Int {
return z return z
} }
// FIXME: n is supposed to be the order, but i'm using it as the modulus
func babyStepGiantStep(n, g, x *big.Int) *big.Int { func babyStepGiantStep(n, g, x *big.Int) *big.Int {
m := ceilSqrt(n) m := ceilSqrt(n)
table := make(map[string]*big.Int) table := make(map[string]*big.Int)
for j := big.NewInt(0); j.Cmp(m) == -1; j.Add(j, big.NewInt(1)) { for j := big.NewInt(1); j.Cmp(m) <= 0; j.Add(j, big.NewInt(1)) {
a := new(big.Int).Exp(g, j, n) a := new(big.Int).Exp(g, j, n)
table[a.String()] = new(big.Int).Set(j) table[a.String()] = new(big.Int).Set(j)
} }
@ -65,6 +67,7 @@ func babyStepGiantStep(n, g, x *big.Int) *big.Int {
gamma.Mod(gamma, n) gamma.Mod(gamma, n)
} }
// TODO: return an error instead
return nil return nil
} }