Cover image for A computational introduction to number theory and algebra
Title:
A computational introduction to number theory and algebra
Personal Author:
Edition:
2nd ed.
Publication Information:
Cambridge, UK : Cambridge University Press, 2009
Physical Description:
xvii, 580 p. : ill. ; 26 cm.
ISBN:
9780521516440

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010205852 QA241 S465 2009 Open Access Book Book
Searching...

On Order

Summary

Summary

Number theory and algebra play an increasingly significant role in computing and communications, as evidenced by the striking applications of these subjects to such fields as cryptography and coding theory. This introductory book emphasizes algorithms and applications, such as cryptography and error correcting codes, and is accessible to a broad audience. The presentation alternates between theory and applications in order to motivate and illustrate the mathematics. The mathematical coverage includes the basics of number theory, abstract algebra and discrete probability theory. This edition now includes over 150 new exercises, ranging from the routine to the challenging, that flesh out the material presented in the body of the text, and which further develop the theory and present new applications. The material has also been reorganized to improve clarity of exposition and presentation. Ideal as a textbook for introductory courses in number theory and algebra, especially those geared towards computer science students.


Author Notes

Victor Shoup is a Professor in the Department of Computer Science at the Courant Institute of Mathematical Sciences, New York University.


Reviews 1

Choice Review

Computer scientists are some of the most ardent consumers of number theory, formerly among the purest branches of pure mathematics. Compared with mathematics majors, computer science students will naturally come to number theory with distinct goals, culture, and background, and thus will welcome this purpose-built introduction. Shoup definitely takes pains to address the calculator generation taking up number theory without even intuition derived from such arcana as solid practice with manual long division. As computer science students have very likely not previously mastered probability theory, linear algebra, or basic abstract algebra, Shoup packages crash courses in each. Despite taking time for so many basics, Shoup climaxes with careful treatment of the late-breaking, ingenious, polynomial-time deterministic primality test of Agrawal, Kayal, and Saxena. Apart from number theory, one could easily build a fine discrete mathematics course on this book. An aside to librarians: from his Web site, Shoup freely distributes this book as a usefully hyperlinked PDF, with some supplementary material. Nevertheless, one really should buy the book--as the Internet age flowers, academic libraries must carry a new role as patrons of worthy intellectual endeavor, not just distributors of shared material. This reviewer advocates supporting rather than penalizing authors who generously make their work globally available. Summing Up: Highly recommended. General readers; lower- and upper-division undergraduates; professionals. D. V. Feldman University of New Hampshire


Table of Contents

Prefacep. x
Preliminariesp. xiv
1 Basic properties of the integersp. 1
1.1 Divisibility and primalityp. 1
1.2 Ideals and greatest common divisorsp. 5
1.3 Some consequences of unique factorizationp. 10
2 Congruencesp. 15
2.1 Equivalence relationsp. 15
2.2 Definitions and basic properties of congruencesp. 16
2.3 Solving linear congruencesp. 19
2.4 The Chinese remainder theoremp. 22
2.5 Residue classesp. 25
2.6 Euler's phi functionp. 31
2.7 Euler's theorem and Fermat's little theoremp. 32
2.8 Quadratic residuesp. 35
2.9 Summations over divisorsp. 45
3 Computing with large integersp. 50
3.1 Asymptotic notationp. 50
3.2 Machine models and complexity theoryp. 53
3.3 Basic integer arithmeticp. 55
3.4 Computing in Z np. 64
3.5 Faster integer arithmetic (*)p. 69
3.6 Notesp. 71
4 Euclid's algorithmp. 74
4.1 The basic Euclidean algorithmp. 74
4.2 The extended Euclidean algorithmp. 77
4.3 Computing modular inverses and Chinese remainderingp. 82
4.4 Speeding up algorithms via modular computationp. 84
4.5 An effective version of Fermat's two squares theoremp. 86
4.6 Rational reconstruction and applicationsp. 89
4.7 The RSA cryptosystemp. 99
4.8 Notesp. 102
5 The distribution of primesp. 104
5.1 Chebyshev's theorem on the density of primesp. 104
5.2 Bertrand's postulatep. 108
5.3 Mertens' theoremp. 110
5.4 The sieve of Eratosthenesp. 115
5.5 The prime number theorem ...and beyondp. 116
5.6 Notesp. 124
6 Abelian groupsp. 126
6.1 Definitions, basic properties, and examplesp. 126
6.2 Subgroupsp. 132
6.3 Cosets and quotient groupsp. 137
6.4 Group homomorphisms and isomorphismsp. 142
6.5 Cyclic groupsp. 153
6.6 The structure of finite abelian groups (*)p. 163
7 Ringsp. 166
7.1 Definitions, basic properties, and examplesp. 166
7.2 Polynomial ringsp. 176
7.3 Ideals and quotient ringsp. 185
7.4 Ring homomorphisms and isomorphismsp. 192
7.5 The structure of Z * np. 203
8 Finite and discrete probability distributionsp. 207
8.1 Basic definitionsp. 207
8.2 Conditional probability and independencep. 213
8.3 Random variablesp. 221
8.4 Expectation and variancep. 233
8.5 Some useful boundsp. 241
8.6 Balls and binsp. 245
8.7 Hash functionsp. 252
8.8 Statistical distancep. 260
8.9 Measures of randomness and the leftover hash lemma (*)p. 266
8.10 Discrete probability distributionsp. 270
8.11 Notesp. 275
9 Probabilistic algorithmsp. 277
9.1 Basic definitionsp. 278
9.2 Generating a random number from a given intervalp. 285
9.3 The generate and test paradigmp. 287
9.4 Generating a random primep. 292
9.5 Generating a random non-increasing sequencep. 295
9.6 Generating a random factored numberp. 298
9.7 Some complexity theoryp. 302
9.8 Notesp. 304
10 Probabilistic primality testingp. 306
10.1 Trial divisionp. 306
10.2 The Miller-Rabin testp. 307
10.3 Generating random primes using the Miller-Rabin testp. 311
10.4 Factoring and computing Euler's phi functionp. 320
10.5 Notesp. 324
11 Finding generators and discrete logarithms in Z * pp. 327
11.1 Finding a generator for Z * pp. 327
11.2 Computing discrete logarithms in Z * pp. 329
11.3 The Diffie-Hellman key establishment protocolp. 334
11.4 Notesp. 340
12 Quadratic reciprocity and computing modular square rootsp. 342
12.1 The Legendre symbolp. 342
12.2 The Jacobi symbolp. 346
12.3 Computing the Jacobi symbolp. 348
12.4 Testing quadratic residuosityp. 349
12.5 Computing modular square rootsp. 350
12.6 The quadratic residuosity assumptionp. 355
12.7 Notesp. 357
13 Modules and vector spacesp. 358
13.1 Definitions, basic properties, and examplesp. 358
13.2 Submodules and quotient modulesp. 360
13.3 Module homomorphisms and isomorphismsp. 363
13.4 Linear independence and basesp. 367
13.5 Vector spaces and dimensionp. 370
14 Matricesp. 377
14.1 Basic definitions and propertiesp. 377
14.2 Matrices and linear mapsp. 381
14.3 The inverse of a matrixp. 386
14.4 Gaussian eliminationp. 388
14.5 Applications of Gaussian eliminationp. 392
14.6 Notesp. 398
15 Subexponential-time discrete logarithms and factoringp. 399
15.1 Smooth numbersp. 399
15.2 An algorithm for discrete logarithmsp. 400
15.3 An algorithm for factoring integersp. 407
15.4 Practical improvementsp. 414
15.5 Notesp. 418
16 More ringsp. 421
16.1 Algebrasp. 421
16.2 The field of fractions of an integral domainp. 427
16.3 Unique factorization of polynomialsp. 430
16.4 Polynomial congruencesp. 435
16.5 Minimal polynomialsp. 438
16.6 General properties of extension fieldsp. 440
16.7 Formal derivativesp. 444
16.8 Formal power series and Laurent seriesp. 446
16.9 Unique factorization domains (*)p. 451
16.10 Notesp. 464
17 Polynomial arithmetic and applicationsp. 465
17.1 Basic arithmeticp. 465
17.2 Computing minimal polynomials in F[x]/(f)(I)p. 468
17.3 Euclid's algorithmp. 469
17.4 Computing modular inverses and Chinese remainderingp. 472
17.5 Rational function reconstruction and applicationsp. 474
17.6 Faster polynomial arithmetic (*)p. 478
17.7 Notesp. 484
18 Linearly generated sequences and applicationsp. 486
18.1 Basic definitions and propertiesp. 486
18.2 Computing minimal polynomials: a special casep. 490
18.3 Computing minimal polynomials: a more general casep. 492
18.4 Solving sparse linear systemsp. 497
18.5 Computing minimal polynomials in F[X]/(f)(II)p. 500
18.6 The algebra of linear transformations (*)p. 501
18.7 Notesp. 508
19 Finite fieldsp. 509
19.1 Preliminariesp. 509
19.2 The existence of finite fieldsp. 511
19.3 The subfield structure and uniqueness of finite fieldsp. 515
19.4 Conjugates, norms and tracesp. 516
20 Algorithms for finite fieldsp. 522
20.1 Tests for and constructing inrreducible polynomialsp. 522
20.2 Computing minimal polynomials in F[X](f)(III)p. 525
20.3 Factoring polynomials: square-free decompositionp. 526
20.4 Factoring polynomials: the Cantor-Zassenhaus algorithmp. 530
20.5 Factoring polynomials: Berlekamp's algorithmp. 538
20.6 Deterministic factorization algorithms (*)p. 544
20.7 Notesp. 546
21 Deterministic primality testingp. 548
21.1 The basic ideap. 548
21.2 The algorithm and its analysisp. 549
21.3 Notesp. 558
Appendix: Some useful factsp. 561
Bibliographyp. 566
Index of notationp. 572
Indexp. 574