cryptology principles and applications 316