A Computational Introduction To Number Theory And Algebra by Victor Shoup