Bouncy Castle Cryptography Library 1.81

org.bouncycastle.math.ec
Class WNafUtil

java.lang.Object
  extended byorg.bouncycastle.math.ec.WNafUtil

public abstract class WNafUtil
extends java.lang.Object


Field Summary
static java.lang.String PRECOMP_NAME
           
 
Constructor Summary
WNafUtil()
           
 
Method Summary
static void configureBasepoint(ECPoint p)
           
static int[] generateCompactNaf(java.math.BigInteger k)
           
static int[] generateCompactWindowNaf(int width, java.math.BigInteger k)
           
static byte[] generateJSF(java.math.BigInteger g, java.math.BigInteger h)
           
static byte[] generateNaf(java.math.BigInteger k)
           
static byte[] generateWindowNaf(int width, java.math.BigInteger k)
          Computes the Window NAF (non-adjacent Form) of an integer.
static int getNafWeight(java.math.BigInteger k)
           
static int getWindowSize(int bits)
          Determine window width to use for a scalar multiplication of the given size.
static int getWindowSize(int bits, int maxWidth)
          Determine window width to use for a scalar multiplication of the given size.
static int getWindowSize(int bits, int[] windowSizeCutoffs)
          Determine window width to use for a scalar multiplication of the given size.
static int getWindowSize(int bits, int[] windowSizeCutoffs, int maxWidth)
          Determine window width to use for a scalar multiplication of the given size.
static WNafPreCompInfo getWNafPreCompInfo(ECPoint p)
           
static WNafPreCompInfo getWNafPreCompInfo(PreCompInfo preCompInfo)
           
static WNafPreCompInfo precompute(ECPoint p, int minWidth, boolean includeNegated)
           
static WNafPreCompInfo precomputeWithPointMap(ECPoint p, ECPointMap pointMap, WNafPreCompInfo fromWNaf, boolean includeNegated)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PRECOMP_NAME

public static final java.lang.String PRECOMP_NAME
See Also:
Constant Field Values
Constructor Detail

WNafUtil

public WNafUtil()
Method Detail

configureBasepoint

public static void configureBasepoint(ECPoint p)

generateCompactNaf

public static int[] generateCompactNaf(java.math.BigInteger k)

generateCompactWindowNaf

public static int[] generateCompactWindowNaf(int width,
                                             java.math.BigInteger k)

generateJSF

public static byte[] generateJSF(java.math.BigInteger g,
                                 java.math.BigInteger h)

generateNaf

public static byte[] generateNaf(java.math.BigInteger k)

generateWindowNaf

public static byte[] generateWindowNaf(int width,
                                       java.math.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=0 l-1 k i2 i , where the k i denote the elements of the returned byte[].

getNafWeight

public static int getNafWeight(java.math.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)

Bouncy Castle Cryptography Library 1.81