Safe Haskell | None |
---|---|
Language | Haskell98 |
Elliptic Curve Arithmetic.
WARNING: These functions are vulnerable to timing attacks.
Documentation
pointAdd :: Curve -> Point -> Point -> Point Source
Elliptic Curve point addition.
WARNING: Vulnerable to timing attacks.
pointDouble :: Curve -> Point -> Point Source
Elliptic Curve point doubling.
WARNING: Vulnerable to timing attacks.
This perform the following calculation: > lambda = (3 * xp ^ 2 + a) / 2 yp > xr = lambda ^ 2 - 2 xp > yr = lambda (xp - xr) - yp
With binary curve: > xp == 0 => P = O > otherwise => > s = xp + (yp / xp) > xr = s ^ 2 + s + a > yr = xp ^ 2 + (s+1) * xr
pointMul :: Curve -> Integer -> Point -> Point Source
Elliptic curve point multiplication (double and add algorithm).
WARNING: Vulnerable to timing attacks.
isPointAtInfinity :: Point -> Bool Source
Check if a point is the point at infinity.