Computer Algebra (Ma 810a - Cs 810a)
Tuesdays and Thursdays from 05:00PM to 06:15PM
Course Description:
- The course is designed for advanced undergraduate, graduate students in
computer science and mathematics. It introduces basic topics and methods
in computer algebra with emphasis on applications to cryptography.
Topics include: fundamental algorithms for integers and polynomials,
Euclidean algorithm, Chinese Remainder, Fast Fourier Transform,
polynomial factorization and root finding, lattice basis reduction,
primality testing, integer factorization, introduction to polynomial
ideals and Gröbner basis. Programming skills are required as
students are expected to complete a number of programming projects.
Pre-requisites:
- Programming skills in either C/C++, Matlab or Mathematica
Textbooks:
Instructors:
- Dr. Alex Myasnikov,
Office hours: By appointment. Pierce 308
- Dr. Werner Backes,
Office hours: By appointment. Babbio 640b
Grading:
Policies:
Syllabus (prelimenary):
- Introduction. Basics of algorithm analysis and complexity theory
(definition of an algorithm, O(.) notation, polynomial and
exponential time complexity)
- Representation and addition of numbers and polynomials.
- Multiplication, division with reminder.
- Euclidean algorithm. The Extended Euclidean algorithm
- Modular arithmetic. Repeated squaring.
- Linear diophantine equations
- Change of representation. Chinese Remainder Algorithm.
- Fast Fourier Transform. Fast multiplication.
- Newton iteration.
- Solving polynomial equations using Newton iteration.
- Fast polynomial evaluation and interpolation (maybe omit this one)
- Fast Matrix multiplication (maybe omit this one)
- Algorithms for polynomial factorization, root finding.
- LLL basis reduction algorithm for lattices
- Factoring polynomials using using basis reduction
- Cryptanalysis of knapsack-type cryptosystems.
- Primality testing.
- Finding primes.
- Integer factorization. Trial division.
- Integer factorization algorithms.
- Public key cryptography. RSA, Diffie-Hellman key exchange.
- Polynomial ideals.
- Gröbner bases and S-polynomials
- Buchberger's algorithm (not sure if this can be done)
- Multivariate cryptography.
Last updated on April 2, 2008.