math

package
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 4, 2025 License: BSD-3-Clause Imports: 4 Imported by: 8

Documentation

Overview

Package math provides some utility functions for big integers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsSafePrime added in v1.3.4

func IsSafePrime(p *big.Int) bool

IsSafePrime reports whether p is (probably) a safe prime. The prime p=2*q+1 is safe prime if both p and q are primes. Note that ProbablyPrime is not suitable for judging primes that an adversary may have crafted to fool the test.

func NextPow2 added in v1.6.0

func NextPow2(n uint) (N uint, k uint)

NextPow2 finds the next power of two (N=2^k, k>=0) greater than n. If n is already a power of two, then this function returns n, and log2(n).

func OmegaNAF

func OmegaNAF(n *big.Int, w uint) (L []int32)

OmegaNAF obtains the window-w Non-Adjacent Form of a positive number n and 1 < w < 32. The returned slice L holds n = sum( L[i]*2^i ).

Reference:

func SafePrime added in v1.3.4

func SafePrime(random io.Reader, bits int) (*big.Int, error)

SafePrime returns a number of the given bit length that is a safe prime with high probability. The number returned p=2*q+1 is a safe prime if both p and q are primes. SafePrime will return error for any error returned by rand.Read or if bits < 2.

func SignedDigit

func SignedDigit(n *big.Int, w, l uint) []int32

SignedDigit obtains the signed-digit recoding of n and returns a list L of digits such that n = sum( L[i]*2^(i*(w-1)) ), and each L[i] is an odd number in the set {±1, ±3, ..., ±2^(w-1)-1}. The third parameter ensures that the output has ceil(l/(w-1)) digits.

Restrictions:

  • n is odd and n > 0.
  • 1 < w < 32.
  • l >= bit length of n.

References:

Types

This section is empty.

Directories

Path Synopsis
Package fp25519 provides prime field arithmetic over GF(2^255-19).
Package fp25519 provides prime field arithmetic over GF(2^255-19).
Package fp448 provides prime field arithmetic over GF(2^448-2^224-1).
Package fp448 provides prime field arithmetic over GF(2^448-2^224-1).
Package mlsbset provides a constant-time exponentiation method with precomputation.
Package mlsbset provides a constant-time exponentiation method with precomputation.
Package polynomial provides representations of polynomials over the scalars of a group.
Package polynomial provides representations of polynomials over the scalars of a group.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL