Vectorial addition chain

Last updated

In mathematics, for positive integers k and s, a vectorial addition chain is a sequence V of k-dimensional vectors of nonnegative integers vi for k + 1 ≤ is together with a sequence w, such that

Contents

vk+1 = [1,0,0,...0,0]
vk+2 = [0,1,0,...0,0]
v0 = [0,0,0,,...0,1]
vi =vj+vr for all 1≤is with -k+1≤j, ri-1
vs = [n0,...,nk-1]
w = (w1,...ws), wi=(j,r).

For example, a vectorial addition chain for [22,18,3] is

V=([1,0,0],[0,1,0],[0,0,1],[1,1,0],[2,2,0],[4,4,0],[5,4,0],[10,8,0],[11,9,0],[11,9,1],[22,18,2],[22,18,3])
w=((-2,-1),(1,1),(2,2),(-2,3),(4,4),(1,5),(0,6),(7,7),(0,8))

Vectorial addition chains are well suited to perform multi-exponentiation:[ citation needed ]

Exponentiation Mathematical operation

Exponentiation is a mathematical operation, written as bn, involving two numbers, the baseb and the exponent or powern. When n is a positive integer, exponentiation corresponds to repeated multiplication of the base: that is, bn is the product of multiplying n bases:

Input: Elements x0,...,xk-1 of an abelian group G and a vectorial addition chain of dimension k computing [n0,...,nk-1]
Output:The element x0n0...xk-1nr-1
  1. fori =-k+1 to 0 doyixi+k-1
  2. fori = 1 tosdoyiyj×yr
  3. returnys

Addition sequence

An addition sequence for the set of integer S ={n0, ..., nr-1} is an addition chain v that contains every element of S.

In mathematics, an addition chain for computing a positive integer n can be given by a sequence of natural numbers v and a sequence of index pairs w such that each term in v is the sum of two previous terms, the indices of those terms being specified by w:

For example, an addition sequence computing

{47,117,343,499}

is

(1,2,4,8,10,11,18,36,47,55,91,109,117,226,343,434,489,499).

It's possible to find addition sequence from vectorial addition chains and vice versa, so they are in a sense dual. [1]

See also

In mathematics and computer science, optimal addition-chain exponentiation is a method of exponentiation by positive integer powers that requires a minimal number of multiplications. This corresponds to the sequence A003313 on the Online Encyclopedia of Integer Sequences. It works by creating the shortest addition chain that generates the desired exponent. Each exponentiation in the chain can be evaluated by multiplying two of the earlier exponentiation results. More generally, addition-chain exponentiation may also refer to exponentiation by non-minimal addition chains constructed by a variety of algorithms.

In mathematics and computer programming, exponentiating by squaring is a general method for fast computation of large positive integer powers of a number, or more generally of an element of a semigroup, like a polynomial or a square matrix. Some variants are commonly referred to as square-and-multiply algorithms or binary exponentiation. These can be of quite general use, for example in modular arithmetic or powering of matrices. For semigroups for which additive notation is commonly used, like elliptic curves used in cryptography, this method is also referred to as double-and-add.

Non-adjacent form unique signed-digit representation

The non-adjacent form (NAF) of a number is a unique signed-digit representation. Like the name suggests, non-zero values cannot be adjacent. For example:

Related Research Articles

In computer science, an array data structure, or simply an array, is a data structure consisting of a collection of elements, each identified by at least one array index or key. An array is stored such that the position of each element can be computed from its index tuple by a mathematical formula. The simplest type of data structure is a linear array, also called one-dimensional array.

In mathematics, a linear map is a mapping VW between two modules that preserves the operations of addition and scalar multiplication.

Basis (linear algebra) subset of a vector space, such that every vector is uniquely expressible as a linear combination over this set of vectors

In mathematics, a set B of elements (vectors) in a vector space V is called a basis, if every element of V may be written in a unique way as a (finite) linear combination of elements of B. The coefficients of this linear combination are referred to as components or coordinates on B of the vector. The elements of a basis are called basis vectors.

Sequence ordered list of elements; function with natural numbers as domain

In mathematics, a sequence is an enumerated collection of objects in which repetitions are allowed. Like a set, it contains members. The number of elements is called the length of the sequence. Unlike a set, the same elements can appear multiple times at different positions in a sequence, and order matters. Formally, a sequence can be defined as a function whose domain is either the set of the natural numbers or the set of the first n natural numbers. The position of an element in a sequence is its rank or index; it is the natural number from which the element is the image. It depends on the context or a specific convention, if the first element has index 0 or 1. When a symbol has been chosen for denoting a sequence, the nth element of the sequence is denoted by this symbol with n as subscript; for example, the nth element of the Fibonacci sequence is generally denoted Fn.

An exact sequence is a concept in mathematics, especially in group theory, ring and module theory, homological algebra, as well as in differential geometry. An exact sequence is a sequence, either finite or infinite, of objects and morphisms between them such that the image of one morphism equals the kernel of the next.

In the mathematics of the real numbers, the logarithm logba is a number x such that bx = a, for given numbers a and b. Analogously, in any group G, powers bk can be defined for all integers k, and the discrete logarithm logba is an integer k such that bk = a. In number theory, the more commonly used term is index: we can write x = indra for rxa if r is a primitive root of m and gcd(a,m)=1.

In mathematics, specifically in homology theory and algebraic topology, cohomology is a general term for a sequence of abelian groups associated to a topological space, often defined from a cochain complex. Cohomology can be viewed as a method of assigning richer algebraic invariants to a space than homology. Some versions of cohomology arise by dualizing the construction of homology. In other words, cochains are functions on the group of chains in homology theory.

In mathematics and specifically in algebraic geometry, the dimension of an algebraic variety may be defined in various equivalent ways.

In mathematics, Knuth's up-arrow notation is a method of notation for very large integers, introduced by Donald Knuth in 1976. It is closely related to the Ackermann function and especially to the hyperoperation sequence. The idea is based on the fact that multiplication can be viewed as iterated addition and exponentiation as iterated multiplication. Continuing in this manner leads to tetration and to the remainder of the hyperoperation sequence, which is commonly denoted using Knuth arrow notation. This notation allows for a simple description of numbers far larger than can be explicitly written out.

In mathematics and computer programming, index notation is used to specify the elements of an array of numbers. The formalism of how indices are used varies according to the subject. In particular, there are different methods for referring to the elements of a list, a vector, or a matrix, depending on whether one is writing a formal mathematical paper for publication, or when one is writing a computer program.

Schönhage–Strassen algorithm

The Schönhage–Strassen algorithm is an asymptotically fast multiplication algorithm for large integers. It was developed by Arnold Schönhage and Volker Strassen in 1971. The run-time bit complexity is, in Big O notation, for two n-digit numbers. The algorithm uses recursive Fast Fourier transforms in rings with 2n+1 elements, a specific type of number theoretic transform.

In mathematics, the Grothendieck group construction in abstract algebra constructs an abelian group from a commutative monoid M in the most universal way in the sense that any abelian group containing a homomorphic image of M will also contain a homomorphic image of the Grothendieck group of M. The Grothendieck group construction takes its name from the more general construction in category theory, introduced by Alexander Grothendieck in his fundamental work of the mid-1950s that resulted in the development of K-theory, which led to his proof of the Grothendieck–Riemann–Roch theorem. This article treats both constructions.

Operation (mathematics) mathematical procedure which produces a result from operands; calculation from zero or more input values (called operands) to an output value. The number of operands is the arity of the operation

In mathematics, an operation is a calculation from zero or more input values to an output value. The number of operands is the arity of the operation. The most commonly studied operations are binary operations, such as addition and multiplication, and unary operations, such as additive inverse and multiplicative inverse. An operation of arity zero, or nullary operation, is a constant. The mixed product is an example of an operation of arity 3, also called ternary operation. Generally, the arity is supposed to be finite. However, infinitary operations are sometimes considered, in which context the "usual" operations of finite arity are called finitary operations.

An addition-subtraction chain, a generalization of addition chains to include subtraction, is a sequence a0, a1, a2, a3, ... that satisfies

In mathematics, a Bratteli diagram is a combinatorial structure: a graph composed of vertices labelled by positive integers ("level") and unoriented edges between vertices having levels differing by one. The notion was introduced by Ola Bratteli in 1972 in the theory of operator algebras to describe directed sequences of finite-dimensional algebras: it played an important role in Elliott's classification of AF-algebras and the theory of subfactors. Subsequently Anatoly Vershik associated dynamical systems with infinite paths in such graphs.

In mathematics, an algebraic number fieldF is a finite degree field extension of the field of rational numbers Q. Thus F is a field that contains Q and has finite dimension when considered as a vector space over Q.

References

  1. Cohen, H., Frey, G. (editors): Handbook of elliptic and hyperelliptic curve cryptography. Discrete Math. Appl., Chapman & Hall/CRC (2006)