diff --git a/cmd/discreteLog.go b/cmd/discreteLog.go index a3259ef..f47c8e6 100644 --- a/cmd/discreteLog.go +++ b/cmd/discreteLog.go @@ -41,6 +41,11 @@ func ceilSqrt(x *big.Int) *big.Int { } func babyStepGiantStep(n, g, x, order *big.Int) (*big.Int, error) { + z := new(big.Int).GCD(nil, nil, g, n) + if z.Cmp(big.NewInt(1)) != 0 { + return nil, fmt.Errorf("base %v is not invertible modulo %v", g, n) + } + var m *big.Int if order == nil { // m = ceil(sqrt(n - 1))