Bit Serial Systolic Architectures for Multiplicative Inversion and Division Over GF (2M)
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Lecture 9: Arithmetics II 1 Greatest Common Divisor
DD2458, Problem Solving and Programming Under Pressure Lecture 9: Arithmetics II Date: 2008-11-10 Scribe(s): Marcus Forsell Stahre and David Schlyter Lecturer: Douglas Wikström This lecture is a continuation of the previous one, and covers modular arithmetic and topics from a branch of number theory known as elementary number theory. Also, some abstract algebra will be discussed. 1 Greatest Common Divisor Definition 1.1 If an integer d divides another integer n with no remainder, d is said to be a divisor of n. That is, there exists an integer a such that a · d = n. The notation for this is d | n. Definition 1.2 A common divisor of two non-zero integers m and n is a positive integer d, such that d | m and d | n. Definition 1.3 The Greatest Common Divisor (GCD) of two positive integers m and n is a common divisor d such that every other common divisor d0 | d. The notation for this is GCD(m, n) = d. That is, the GCD of two numbers is the greatest number that is a divisor of both of them. To get an intuition of what GCD is, let’s have a look at this example. Example Calculate GCD(9, 6). Say we have 9 black and 6 white blocks. We want to put the blocks in boxes, but every box has to be the same size, and can only hold blocks of the same color. Also, all the boxes must be full and as large as possible . Let’s for example say we choose a box of size 2: As we can see, the last box of black bricks is not full. -
Ary GCD-Algorithm in Rings of Integers
On the l-Ary GCD-Algorithm in Rings of Integers Douglas Wikstr¨om Royal Institute of Technology (KTH) KTH, Nada, S-100 44 Stockholm, Sweden Abstract. We give an l-ary greatest common divisor algorithm in the ring of integers of any number field with class number 1, i.e., factorial rings of integers. The algorithm has a quadratic running time in the bit-size of the input using naive integer arithmetic. 1 Introduction The greatest common divisor (GCD) of two integers a and b is the largest in- teger d such that d divides both a and b. The problem of finding the GCD of two integers efficiently is one of the oldest problems studied in number theory. The corresponding problem can be considered for two elements α and β in any factorial ring R. Then λ ∈ R is a GCD of α and β if it divides both elements, and whenever λ ∈ R divides both α and β it also holds that λ divides λ. A pre- cise understanding of the complexity of different GCD algorithms gives a better understanding of the arithmetic in the domain under consideration. 1.1 Previous Work The Euclidean GCD algorithm is well known. The basic idea of Euclid is that if |a|≥|b|, then |a mod b| < |b|. Since we always have gcd(a, b)=gcd(a mod b, b), this means that we can replace a with a mod b without changing the GCD. Swapping the order of a and b does not change the GCD, so we can repeatedly reduce |a| or |b| until one becomes zero, at which point the other equals the GCD of the original inputs. -
An O (M (N) Log N) Algorithm for the Jacobi Symbol
An O(M(n) log n) algorithm for the Jacobi symbol Richard P. Brent1 and Paul Zimmermann2 1 Australian National University, Canberra, Australia 2 INRIA Nancy - Grand Est, Villers-l`es-Nancy, France 28 January 2010 Submitted to ANTS IX Abstract. The best known algorithm to compute the Jacobi symbol of two n-bit integers runs in time O(M(n) log n), using Sch¨onhage’s fast continued fraction algorithm combined with an identity due to Gauss. We give a different O(M(n) log n) algorithm based on the binary recursive gcd algorithm of Stehl´eand Zimmermann. Our implementation — which to our knowledge is the first to run in time O(M(n) log n) — is faster than GMP’s quadratic implementation for inputs larger than about 10000 decimal digits. 1 Introduction We want to compute the Jacobi symbol3 (b a) for n-bit integers a and b, where a is odd positive. We give three| algorithms based on the 2-adic gcd from Stehl´eand Zimmermann [13]. First we give an algorithm whose worst-case time bound is O(M(n)n2) = O(n3); we call this the cubic algorithm although this is pessimistic since the e algorithm is quadratic on average as shown in [5], and probably also in the worst case. We then show how to reduce the worst-case to 2 arXiv:1004.2091v2 [cs.DS] 2 Jun 2010 O(M(n)n) = O(n ) by combining sequences of “ugly” iterations (defined in Section 1.1) into one “harmless” iteration. Finally, we e obtain an algorithm with worst-case time O(M(n) log n). -
A Binary Recursive Gcd Algorithm
A Binary Recursive Gcd Algorithm Damien Stehle´ and Paul Zimmermann LORIA/INRIA Lorraine, 615 rue du jardin botanique, BP 101, F-54602 Villers-l`es-Nancy, France, fstehle,[email protected] Abstract. The binary algorithm is a variant of the Euclidean algorithm that performs well in practice. We present a quasi-linear time recursive algorithm that computes the greatest common divisor of two integers by simulating a slightly modified version of the binary algorithm. The structure of our algorithm is very close to the one of the well-known Knuth-Sch¨onhage fast gcd algorithm; although it does not improve on its O(M(n) log n) complexity, the description and the proof of correctness are significantly simpler in our case. This leads to a simplification of the implementation and to better running times. 1 Introduction Gcd computation is a central task in computer algebra, in particular when com- puting over rational numbers or over modular integers. The well-known Eu- clidean algorithm solves this problem in time quadratic in the size n of the inputs. This algorithm has been extensively studied and analyzed over the past decades. We refer to the very complete average complexity analysis of Vall´ee for a large family of gcd algorithms, see [10]. The first quasi-linear algorithm for the integer gcd was proposed by Knuth in 1970, see [4]: he showed how to calculate the gcd of two n-bit integers in time O(n log5 n log log n). The complexity of this algorithm was improved by Sch¨onhage [6] to O(n log2 n log log n). -
A Casual Primer on Finite Fields
A very brief introduction to finite fields Olivia Di Matteo December 10, 2015 1 What are they and how do I make one? Definition 1 (Finite fields). Let p be a prime number, and n ≥ 1 an integer. A finite field n n n of order p , denoted by Fpn or GF(p ), is a collection of p objects and two binary operations, addition and multiplication, such that the following properties hold: 1. The elements are closed under addition modulo p, 2. The elements are closed under multiplication modulo p, 3. For all non-zero elements, there exists a multiplicative inverse. 1.1 Prime dimensions Nothing much to see here. In prime dimension p, the finite field Fp is very simple: Fp = Zp = f0; 1; : : : ; p − 1g: (1) 1.2 Power of prime dimensions and field extensions Fields of prime-power dimension are constructed by extending a field of smaller order using a primitive polynomial. See section 2.1.2 in [1]. 1.2.1 Primitive polynomials Definition 2. Consider a polynomial n q(x) = a0 + a1x + ··· + anx ; (2) having degree n and coefficients ai 2 Fq. Such a polynomial is called monic if an = 1. Definition 3. A polynomial n q(x) = a0 + a1x + ··· + anx ; ai 2 Fq (3) is called irreducible if q(x) has positive degree, and q(x) = u(x)v(x); (4) 1 and either u(x) or v(x) a constant polynomial. In other words, the equation n q(x) = a0 + a1x + ··· + anx = 0 (5) has no solutions in the field Fq. Example 1 (Irreducible polynomial). -
Type-II Optimal Polynomial Bases
Type-II Optimal Polynomial Bases Daniel J. Bernstein1 and Tanja Lange2 1 Department of Computer Science (MC 152) University of Illinois at Chicago, Chicago, IL 60607{7053, USA [email protected] 2 Department of Mathematics and Computer Science Technische Universiteit Eindhoven, P.O. Box 513, 5600 MB Eindhoven, Netherlands [email protected] Abstract. In the 1990s and early 2000s several papers investigated the relative merits of polynomial-basis and normal-basis computations for F2n . Even for particularly squaring-friendly applications, such as implementations of Koblitz curves, normal bases fell behind in performance unless a type-I normal basis existed for F2n . In 2007 Shokrollahi proposed a new method of multiplying in a type-II normal basis. Shokrol- lahi's method efficiently transforms the normal-basis multiplication into a single multiplication of two size-(n + 1) polynomials. This paper speeds up Shokrollahi's method in several ways. It first presents a simpler algorithm that uses only size-n polynomials. It then explains how to reduce the transformation cost by dynamically switching to a `type-II optimal polynomial basis' and by using a new reduction strategy for multiplications that produce output in type-II polynomial basis. As an illustration of its improvements, this paper explains in detail how the multiplication over- head in Shokrollahi's original method has been reduced by a factor of 1:4 in a major cryptanalytic computation, the ongoing attack on the ECC2K-130 Certicom challenge. The resulting overhead is also considerably smaller than the overhead in a traditional low-weight-polynomial-basis ap- proach. This is the first state-of-the-art binary-elliptic-curve computation in which type-II bases have been shown to outperform traditional low-weight polynomial bases. -
Euclid's Algorithm
4 Euclid’s algorithm In this chapter, we discuss Euclid’s algorithm for computing greatest common divisors, which, as we will see, has applications far beyond that of just computing greatest common divisors. 4.1 The basic Euclidean algorithm We consider the following problem: given two non-negative integers a and b, com- pute their greatest common divisor, gcd(a, b). We can do this using the well-known Euclidean algorithm, also called Euclid’s algorithm. The basic idea is the following. Without loss of generality, we may assume that a ≥ b ≥ 0. If b = 0, then there is nothing to do, since in this case, gcd(a, 0) = a. Otherwise, b > 0, and we can compute the integer quotient q := ba=bc and remain- der r := a mod b, where 0 ≤ r < b. From the equation a = bq + r, it is easy to see that if an integer d divides both b and r, then it also divides a; like- wise, if an integer d divides a and b, then it also divides r. From this observation, it follows that gcd(a, b) = gcd(b, r), and so by performing a division, we reduce the problem of computing gcd(a, b) to the “smaller” problem of computing gcd(b, r). The following theorem develops this idea further: Theorem 4.1. Let a, b be integers, with a ≥ b ≥ 0. Using the division with remainder property, define the integers r0, r1,..., rλ+1 and q1,..., qλ, where λ ≥ 0, as follows: 74 4.1 The basic Euclidean algorithm 75 a = r0, b = r1, r0 = r1q1 + r2 (0 < r2 < r1), . -
With Animation
Integer Arithmetic Arithmetic in Finite Fields Arithmetic of Elliptic Curves Public-key Cryptography Theory and Practice Abhijit Das Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Chapter 3: Algebraic and Number-theoretic Computations Public-key Cryptography: Theory and Practice Abhijit Das Integer Arithmetic GCD Arithmetic in Finite Fields Modular Exponentiation Arithmetic of Elliptic Curves Primality Testing Integer Arithmetic Public-key Cryptography: Theory and Practice Abhijit Das Integer Arithmetic GCD Arithmetic in Finite Fields Modular Exponentiation Arithmetic of Elliptic Curves Primality Testing Integer Arithmetic In cryptography, we deal with very large integers with full precision. Public-key Cryptography: Theory and Practice Abhijit Das Integer Arithmetic GCD Arithmetic in Finite Fields Modular Exponentiation Arithmetic of Elliptic Curves Primality Testing Integer Arithmetic In cryptography, we deal with very large integers with full precision. Standard data types in programming languages cannot handle big integers. Public-key Cryptography: Theory and Practice Abhijit Das Integer Arithmetic GCD Arithmetic in Finite Fields Modular Exponentiation Arithmetic of Elliptic Curves Primality Testing Integer Arithmetic In cryptography, we deal with very large integers with full precision. Standard data types in programming languages cannot handle big integers. Special data types (like arrays of integers) are needed. Public-key Cryptography: Theory and Practice Abhijit Das Integer Arithmetic GCD Arithmetic in Finite Fields Modular Exponentiation Arithmetic of Elliptic Curves Primality Testing Integer Arithmetic In cryptography, we deal with very large integers with full precision. Standard data types in programming languages cannot handle big integers. Special data types (like arrays of integers) are needed. The arithmetic routines on these specific data types have to be implemented. -
Time Complexity Analysis of Cloud Data Security: Elliptical Curve and Polynomial Cryptography
International Journal of Computer Sciences and Engineering Open Access Research Paper Vol.-7, Issue-2, Feb 2019 E-ISSN: 2347-2693 Time Complexity Analysis of Cloud Data Security: Elliptical Curve and Polynomial Cryptography D.Pharkkavi1*, D. Maruthanayagam2 1Sri Vijay Vidyalaya College of Arts & Science, Dharmapuri, Tamilnadu, India 2PG and Research Department of Computer Science, Sri Vijay Vidyalaya College of Arts & Science, Dharmapuri, Tamilnadu, India *Corresponding Author: [email protected] DOI: https://doi.org/10.26438/ijcse/v7i2.321331 | Available online at: www.ijcseonline.org Accepted: 10/Feb/2019, Published: 28/Feb/2019 Abstract- Encryption becomes a solution and different encryption techniques which roles a significant part of data security on cloud. Encryption algorithms is to ensure the security of data in cloud computing. Because of a few limitations of pre-existing algorithms, it requires for implementing more efficient techniques for public key cryptosystems. ECC (Elliptic Curve Cryptography) depends upon elliptic curves defined over a finite field. ECC has several features which distinguish it from other cryptosystems, one of that it is relatively generated a new cryptosystem. Several developments in performance have been found out during the last few years for Galois Field operations both in Normal Basis and in Polynomial Basis. On the other hand, there is still some confusion to the relative performance of these new algorithms and very little examples of practical implementations of these new algorithms. Efficient implementations of the basic arithmetic operations in finite fields GF(2m) are need for the applications of coding theory and cryptography. The elements in GF(2m) know how to be characterized in a choice of bases. -
Prime Numbers and Discrete Logarithms
Lecture 11: Prime Numbers And Discrete Logarithms Lecture Notes on “Computer and Network Security” by Avi Kak ([email protected]) February 25, 2021 12:20 Noon ©2021 Avinash Kak, Purdue University Goals: • Primality Testing • Fermat’s Little Theorem • The Totient of a Number • The Miller-Rabin Probabilistic Algorithm for Testing for Primality • Python and Perl Implementations for the Miller-Rabin Primal- ity Test • The AKS Deterministic Algorithm for Testing for Primality • Chinese Remainder Theorem for Modular Arithmetic with Large Com- posite Moduli • Discrete Logarithms CONTENTS Section Title Page 11.1 Prime Numbers 3 11.2 Fermat’s Little Theorem 5 11.3 Euler’s Totient Function 11 11.4 Euler’s Theorem 14 11.5 Miller-Rabin Algorithm for Primality Testing 17 11.5.1 Miller-Rabin Algorithm is Based on an Intuitive Decomposition of 19 an Even Number into Odd and Even Parts 11.5.2 Miller-Rabin Algorithm Uses the Fact that x2 =1 Has No 20 Non-Trivial Roots in Zp 11.5.3 Miller-Rabin Algorithm: Two Special Conditions That Must Be 24 Satisfied By a Prime 11.5.4 Consequences of the Success and Failure of One or Both Conditions 28 11.5.5 Python and Perl Implementations of the Miller-Rabin 30 Algorithm 11.5.6 Miller-Rabin Algorithm: Liars and Witnesses 39 11.5.7 Computational Complexity of the Miller-Rabin Algorithm 41 11.6 The Agrawal-Kayal-Saxena (AKS) Algorithm 44 for Primality Testing 11.6.1 Generalization of Fermat’s Little Theorem to Polynomial Rings 46 Over Finite Fields 11.6.2 The AKS Algorithm: The Computational Steps 51 11.6.3 Computational Complexity of the AKS Algorithm 53 11.7 The Chinese Remainder Theorem 54 11.7.1 A Demonstration of the Usefulness of CRT 58 11.8 Discrete Logarithms 61 11.9 Homework Problems 65 Computer and Network Security by Avi Kak Lecture 11 Back to TOC 11.1 PRIME NUMBERS • Prime numbers are extremely important to computer security. -
Further Analysis of the Binary Euclidean Algorithm
Further analysis of the Binary Euclidean algorithm Richard P. Brent1 Oxford University Technical Report PRG TR-7-99 4 November 1999 Abstract The binary Euclidean algorithm is a variant of the classical Euclidean algorithm. It avoids multiplications and divisions, except by powers of two, so is potentially faster than the classical algorithm on a binary machine. We describe the binary algorithm and consider its average case behaviour. In particular, we correct some errors in the literature, discuss some recent results of Vall´ee, and describe a numerical computation which supports a conjecture of Vall´ee. 1 Introduction In 2 we define the binary Euclidean algorithm and mention some of its properties, history and § generalisations. Then, in 3 we outline the heuristic model which was first presented in 1976 [4]. § Some of the results of that paper are mentioned (and simplified) in 4. § Average case analysis of the binary Euclidean algorithm lay dormant from 1976 until Brigitte Vall´ee’s recent analysis [29, 30]. In 5–6 we discuss Vall´ee’s results and conjectures. In 8 we §§ § give some numerical evidence for one of her conjectures. Some connections between Vall´ee’s results and our earlier results are given in 7. § Finally, in 9 we take the opportunity to point out an error in the 1976 paper [4]. Although § the error is theoretically significant and (when pointed out) rather obvious, it appears that no one noticed it for about twenty years. The manner of its discovery is discussed in 9. Some open § problems are mentioned in 10. § 1.1 Notation lg(x) denotes log2(x). -
Intra-Basis Multiplication of Polynomials Given in Various Polynomial Bases
Intra-Basis Multiplication of Polynomials Given in Various Polynomial Bases S. Karamia, M. Ahmadnasabb, M. Hadizadehd, A. Amiraslanic,d aDepartment of Mathematics, Institute for Advanced Studies in Basic Sciences (IASBS), Zanjan, Iran bDepartment of Mathematics, University of Kurdistan, Sanandaj, Iran cSchool of STEM, Department of Mathematics, Capilano University, North Vancouver, BC, Canada dFaculty of Mathematics, K. N. Toosi University of Technology, Tehran, Iran Abstract Multiplication of polynomials is among key operations in computer algebra which plays important roles in developing techniques for other commonly used polynomial operations such as division, evaluation/interpolation, and factorization. In this work, we present formulas and techniques for polynomial multiplications expressed in a variety of well-known polynomial bases without any change of basis. In particular, we take into consideration degree-graded polynomial bases including, but not limited to orthogonal polynomial bases and non-degree-graded polynomial bases including the Bernstein and Lagrange bases. All of the described polynomial multiplication formulas and tech- niques in this work, which are mostly presented in matrix-vector forms, preserve the basis in which the polynomials are given. Furthermore, using the results of direct multiplication of polynomials, we devise techniques for intra-basis polynomial division in the polynomial bases. A generalization of the well-known \long division" algorithm to any degree-graded polynomial basis is also given. The proposed framework deals with matrix-vector computations which often leads to well-structured matrices. Finally, an application of the presented techniques in constructing the Galerkin repre- sentation of polynomial multiplication operators is illustrated for discretization of a linear elliptic problem with stochastic coefficients.