Skip to content

Commit cd17de3

Browse files
committedAug 25, 2020
Exponentiation using window=4.
1 parent b1f2d8e commit cd17de3

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed
 

‎internal/ted448/scalar.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -228,12 +228,22 @@ func coremul(z64, x64, y64 *scalar64) {
228228
func (z *Scalar) Inv(x *Scalar) {
229229
var x64 scalar64
230230
x64.fromScalar(x)
231+
232+
var T [16]scalar64
233+
T[0] = scalar64{1}
234+
for i := 1; i < 16; i++ {
235+
coremul(&T[i], &T[i-1], &x64)
236+
}
237+
231238
t := &scalar64{1}
232-
for i := 8*len(orderMinusTwo) - 1; i >= 0; i-- {
239+
for i := 8*len(orderMinusTwo) - 4; i >= 0; i -= 4 {
240+
b := (orderMinusTwo[i/8] >> uint(i%8)) & 0xF
241+
coremul(t, t, t)
242+
coremul(t, t, t)
243+
coremul(t, t, t)
233244
coremul(t, t, t)
234-
b := (orderMinusTwo[i/8] >> uint(i%8)) & 1
235245
if b != 0 {
236-
coremul(t, t, &x64)
246+
coremul(t, t, &T[b])
237247
}
238248
}
239249
t.modOrder()

0 commit comments

Comments
 (0)