Discrete Mathematics With Cryptographic Applications (A Self-Teaching Introduction)