Complexity And Cryptography by Dominic Welsh & John Talbott