Modern Computer Algebra - GBV

1 downloads 0 Views 47KB Size Report
II Newton. 205. 8 Fast multiplication. 209. 8.1 Karatsuba's multiplication algorithm. 210. 8.2 The Discrete Fourier Transform and the Fast Fourier Transform . 215.
Modern Computer Algebra

JOACHIM VON ZUR GATHEN

and JURGEN GERHARD

Universitat Paderborn

CAMBRIDGE UNIVERSITY PRESS

Contents Introduction

1

1

Cyclohexane, cryptography, codes, and computer algebra 1.1 Cyclohexane conformations 1.2 The RSA cryptosystem 1.3 Distributed data structures 1.4 Computer algebra systems

9 9 14 16 17

1

Euclid

21

2

Fundamental algorithms 2.1 Representation and addition of numbers 2.2 Representation and addition of polynomials 2.3 Multiplication 2.4 Division with remainder Notes Exercises

27 27 30 32 35 39 39

3

The Euclidean Algorithm 3.1 Euclidean domains 3.2 The Extended Euclidean Algorithm 3.3 Cost analysis for Z and F[x] Notes Exercises

43 43 46 50 55 57

4

Applications of the Euclidean Algorithm 4.1 Modular arithmetic 4.2 Modular inverses via Euclid 4.3 Repeated squaring 4.4 Modular inverses via Fermat 4.5 Linear Diophantine equations

63 63 67 69 70 71

vii

viii

Contents 4.6 4.7 4.8

Continued fractions and Diophantine approximation Calendars Musical scales Notes Exercises

5

Modular algorithms and interpolation 5.1 Change of representation 5.2 Evaluation and interpolation 5.3 Application: Secret sharing 5.4 The Chinese Remainder Algorithm 5.5 Modular determinant computation 5.6 Hermite interpolation 5.7 Rational function reconstruction 5.8 Cauchy interpolation 5.9 Pade approximation 5.10 Rational number reconstruction 5.11 Partial fraction decomposition Notes Exercises

6

The resultant and gcd computation 6.1 Coefficient growth in the Euclidean Algorithm 6.2 GauB' lemma 6.3 The resultant 6.4 Modular gcd algorithms 6.5 Modular gcd algorithm in F[JC,V] 6.6 Mignotte's factor bound and a modular gcd algorithm in Z[x] 6.7 Small primes modular gcd algorithms 6.8 Application: intersecting plane curves 6.9 Nonzero preservation and the gcd of several polynomials 6.10 Subresultants 6.11 Modular Extended Euclidean Algorithms 6.12 Pseudo-division and primitive Euclidean Algorithms 6.13 Implementations Notes Exercises

7

Application: Decoding BCH codes Notes Exercises

73 77 78 81 84 89 92 93 95 96 101 105 106 110 112 116 119 122 123 131 131 137 142 148 151 . . 153 157 161 165 167 172 180 182 185 188 197 203 203

Contents

II

Newton

ix

205

8

Fast multiplication 209 8.1 Karatsuba's multiplication algorithm 210 8.2 The Discrete Fourier Transform and the Fast Fourier Transform . 215 8.3 Schonhage and Strassen's multiplication algorithm 225 8.4 Multiplication in Z[x] and R[x,y] 233 Notes 234 Exercises 235

9

Newton iteration 9.1 Division with remainder using Newton iteration 9.2 Generalized Taylor expansion and radix conversion 9.3 Formal derivatives and Taylor expansion 9.4 Solving polynomial equations via Newton iteration 9.5 Computing integer roots 9.6 Valuations, Newton iteration, and Julia sets 9.7 Implementations of fast arithmetic Notes Exercises

243 243 250 251 253 257 259 263 272 272

10 Fast polynomial evaluation and interpolation 10.1 Fast multipoint evaluation 10.2 Fast interpolation 10.3 Fast Chinese remaindering Notes Exercises

279 279 283 285 290 290

11 Fast Euclidean Algorithm 11.1 A fast Euclidean Algorithm for polynomials 11.2 Subresultants via Euclid's algorithm Notes Exercises

295 295 306 310 310

12 Fast linear algebra 12.1 Strassen's matrix multiplication 12.2 Application: fast modular composition of polynomials 12.3 Linearly recurrent sequences 12.4 Wiedemann's algorithm and black box linear algebra Notes Exercises

313 313 316 317 323 330 331

x

Contents

13 Fourier Transform and image compression 13.1 The Continuous and the Discrete Fourier Transform 13.2 Audio and video compression Notes Exercises

335 335 339 344 344

III

347

GauB

14 Factoring polynomials over finite fields 353 14.1 Factorization of polynomials 353 14.2 Distinct-degree factorization 356 14.3 Equal-degree factorization: Cantor and Zassenhaus' algorithm . . 358 14.4 A complete factoring algorithm 365 14.5 Application: root finding 368 14.6 Squarefree factorization 369 14.7 The iterated Frobenius algorithm 373 14.8 Algorithms based on linear algebra 377 14.9 Testing irreducibility and constructing irreducible polynomials . 382 14.10 Cyclotomic polynomials and constructing BCH codes 387 Notes 393 Exercises 397 15 Hensel lifting and factoring polynomials 15.1 Factoring in X[x] andQ[x]: the basic idea 15.2 A factoring algorithm 15.3 Frobenius'and Chebotarev's density theorems 15.4 Hensel lifting 15.5 Multifactor Hensel lifting 15.6 Factoring using Hensel lifting: Zassenhaus'algorithm 15.7 Implementations Notes Exercises

407 407 409 415 418 424 427 435 440 441

16 Short vectors in lattices 16.1 Lattices 16.2 Lenstra, Lenstra and Lovasz'basis reduction algorithm 16.3 Cost estimate for basis reduction 16.4 From short vectors to factors 16.5 A polynomial-time factoring algorithm for Q[x] 16.6 Factoring multivariate polynomials Notes Exercises

447 447 449 454 461 463 467 470 472

Contents

xi

17 Applications of basis reduction 17.1 Breaking knapsack-type cryptosystems 17.2 Pseudorandom numbers 17.3 Simultaneous Diophantine approximation 17.4 Disproof of Mertens' conjecture Notes Exercises

477 477 479 479 482 483 483

IV

485

Fermat

18 Primality testing 18.1 Multiplicative order of integers 18.2 The Fermat test 18.3 The strong pseudoprimality test 18.4 Finding primes 18.5 The Solovay and Strassen test 18.6 The complexity of primality testing Notes Exercises

491 491 493 494 497 503 504 506 509

19 Factoring integers 19.1 Factorization challenges 19.2 Trial division 19.3 Pollard's and Strassen's method 19.4 Pollard's rho method 19.5 Dixon's random squares method 19.6 Pollard's p- 1 method 19.7 Lenstra's elliptic curve method Notes Exercises

515 515 518 518 519 523 531 531 541 543

20 Application: Public key cryptography 20.1 Cryptosystems 20.2 The RSA cryptosystem 20.3 The Diffie-Hellman key exchange protocol 20.4 The ElGamal cryptosystem 20.5 Rabin's cryptosystem 20.6 Elliptic curve systems 20.7 Short vector cryptosystems Notes Exercises

547 547 550 552 553 553 554 554 555 555

xii

V

Contents

Hilbert

559

21 Grobner bases 565 21.1 Polynomial ideals 565 21.2 Monomial orders and multivariate division with remainder . . . . 570 21.3 Monomial ideals and Hilbert's basis theorem 575 21.4 Grobner bases and S-polynomials 579 21.5 Buchberger's algorithm 582 21.6 Geometric applications 586 21.7 The complexity of computing Grobner bases 589 Notes 591 Exercises 593 22 Symbolic integration 22.1 Differential algebra 22.2 Hermite's method 22.3 The method of Rothstein and Trager Notes Exercises

'.

597 597 599 601 606 606

23 Symbolic summation 23.1 Polynomial summation 23.2 Harmonic numbers 23.3 Greatest factorial factorization 23.4 Hypergeometric summation: Gosper's algorithm Notes Exercises

609 609 614 617 622 633 635

24 Applications 24.1 Grobner proof systems 24.2 Petrinets 24.3 Proving identities and analysis of algorithms 24.4 Cyclohexane revisited Notes Exercises

641 641 643 645 649 661 662

Appendix

665

25 Fundamental concepts 25.1 Groups 25.2 Rings 25.3 Polynomials and fields

667 667 669 672

Contents

25.4 25.5 25.6 25.7 25.8

Finite Linear algebra Finite probability spaces "Big Oh" notation Complexity theory Notes

fields

Sources of illustrations Sources of quotations List of algorithms List of figures and tables References List of notation Index

xiu

675 677 681 684 685 688 689 689 694 696 698 728 729

Keeping up to date Addenda and corrigenda, comments, solutions to selected exercises, and ordering information can be found on the book's web page: http://www-math.uni-paderborn.de/raca/