Solving systems of linear equations Ax=b is easy, but how can we solve such a system when given a "noisy" version of b? Over the reals one can use the least squares method, but the problem is harder when working over a finite field. Recently this subject has become very important in cryptography, due to the introduction of new cryptosystems with interesting properties. The talk will survey work in this area. I will discuss connections with coding theory and cryptography. I will also explain how Fourier analysis in finite groups can be used to solve variants of this problem, and will briefly describe some other applications of Fourier analysis in cryptography. The talk will be accessible to a general mathematical audience.