Class ECAlgorithms


  • public class ECAlgorithms
    extends java.lang.Object
    • Constructor Detail

      • ECAlgorithms

        public ECAlgorithms()
    • Method Detail

      • isF2mCurve

        public static boolean isF2mCurve​(ECCurve c)
      • isF2mField

        public static boolean isF2mField​(FiniteField field)
      • isFpCurve

        public static boolean isFpCurve​(ECCurve c)
      • isFpField

        public static boolean isFpField​(FiniteField field)
      • sumOfMultiplies

        public static ECPoint sumOfMultiplies​(ECPoint[] ps,
                                              java.math.BigInteger[] ks)
      • sumOfTwoMultiplies

        public static ECPoint sumOfTwoMultiplies​(ECPoint P,
                                                 java.math.BigInteger a,
                                                 ECPoint Q,
                                                 java.math.BigInteger b)
      • shamirsTrick

        public static ECPoint shamirsTrick​(ECPoint P,
                                           java.math.BigInteger k,
                                           ECPoint Q,
                                           java.math.BigInteger l)
      • montgomeryTrick

        public static void montgomeryTrick​(ECFieldElement[] zs,
                                           int off,
                                           int len)
      • referenceMultiply

        public static ECPoint referenceMultiply​(ECPoint p,
                                                java.math.BigInteger k)
        Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly faster) implementations, and for very small scalars. CAUTION: This implementation is NOT constant-time in any way. It is only intended to be used for diagnostics.
        Parameters:
        p - The point to multiply.
        k - The multiplier.
        Returns:
        The result of the point multiplication kP.