It should be noted, though, that the book does not address any of the computational aspects of Number Theory that are so dear to Cryptography (e.g it's easy to take square roots mod p if p is prime, hard to take square roots mod pq unless you know p,q). This, however, does not reduce its usefulness, since such results become very easy to absorb once one has a decent understanding of number theory and its workings. To fill the computational gaps, I would suggest Dana Angluin's "Lecture Notes on the Complexity of Some Problems in Number Theory" which are freely available on the web (the 2001 LaTeX'ed version)