Skip to content

Commit bc89d85

Browse files
committed
fix a linear dependent check
1 parent e7a3e88 commit bc89d85

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

hppk.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,18 @@ RETRY:
111111
}
112112

113113
// Ensure f(x) and h(x) are not linear depending by checking it's coefficients
114+
// f(x) = f1x + f0 => f(x)/f0 = f1/f0 * x + 1
115+
// h(x) = h1x + h0 => h(x)/h1 = h1/h0 * x + 1
116+
// by comparing the ratio of f1/f0 and h1/h0, we can ensure that f(x) and h(x) are not linear dependent
114117
revF0 := new(big.Int).ModInverse(f0, prime)
115118
revH0 := new(big.Int).ModInverse(h0, prime)
116119

117120
f1RevF0 := new(big.Int).Mul(f1, revF0)
118-
f2RevH0 := new(big.Int).Mul(f1, revH0)
121+
h1RevH0 := new(big.Int).Mul(h1, revH0)
122+
119123
f1RevF0.Mod(f1RevF0, prime)
120-
f2RevH0.Mod(f2RevH0, prime)
121-
if f1RevF0.Cmp(f2RevH0) == 0 {
124+
h1RevH0.Mod(h1RevH0, prime)
125+
if f1RevF0.Cmp(h1RevH0) == 0 {
122126
goto RETRY
123127
}
124128

0 commit comments

Comments
 (0)