Class WNafUtil

java.lang.Object
org.bouncycastle.math.ec.WNafUtil

public abstract class WNafUtil extends Object
  • Field Details

  • Constructor Details

    • WNafUtil

      public WNafUtil()
  • Method Details

    • configureBasepoint

      public static void configureBasepoint(ECPoint p)
    • generateCompactNaf

      public static int[] generateCompactNaf(BigInteger k)
    • generateCompactWindowNaf

      public static int[] generateCompactWindowNaf(int width, BigInteger k)
    • generateJSF

      public static byte[] generateJSF(BigInteger g, BigInteger h)
    • generateNaf

      public static byte[] generateNaf(BigInteger k)
    • generateWindowNaf

      public static byte[] generateWindowNaf(int width, BigInteger k)
      Computes the Window NAF (non-adjacent Form) of an integer.
      Parameters:
      width - The width w of the Window NAF. The width is defined as the minimal number w, such that for any w consecutive digits in the resulting representation, at most one is non-zero.
      k - The integer of which the Window NAF is computed.
      Returns:
      The Window NAF of the given width, such that the following holds: k = ∑i=0l-1 ki2i , where the ki denote the elements of the returned byte[].
    • getNafWeight

      public static int getNafWeight(BigInteger k)
    • getWNafPreCompInfo

      public static WNafPreCompInfo getWNafPreCompInfo(ECPoint p)
    • getWNafPreCompInfo

      public static WNafPreCompInfo getWNafPreCompInfo(PreCompInfo preCompInfo)
    • getWindowSize

      public static int getWindowSize(int bits)
      Determine window width to use for a scalar multiplication of the given size.
      Parameters:
      bits - the bit-length of the scalar to multiply by
      Returns:
      the window size to use
    • getWindowSize

      public static int getWindowSize(int bits, int maxWidth)
      Determine window width to use for a scalar multiplication of the given size.
      Parameters:
      bits - the bit-length of the scalar to multiply by
      maxWidth - the maximum window width to return
      Returns:
      the window size to use
    • getWindowSize

      public static int getWindowSize(int bits, int[] windowSizeCutoffs)
      Determine window width to use for a scalar multiplication of the given size.
      Parameters:
      bits - the bit-length of the scalar to multiply by
      windowSizeCutoffs - a monotonically increasing list of bit sizes at which to increment the window width
      Returns:
      the window size to use
    • getWindowSize

      public static int getWindowSize(int bits, int[] windowSizeCutoffs, int maxWidth)
      Determine window width to use for a scalar multiplication of the given size.
      Parameters:
      bits - the bit-length of the scalar to multiply by
      windowSizeCutoffs - a monotonically increasing list of bit sizes at which to increment the window width
      maxWidth - the maximum window width to return
      Returns:
      the window size to use
    • precompute

      public static WNafPreCompInfo precompute(ECPoint p, int minWidth, boolean includeNegated)
    • precomputeWithPointMap

      public static WNafPreCompInfo precomputeWithPointMap(ECPoint p, ECPointMap pointMap, WNafPreCompInfo fromWNaf, boolean includeNegated)