What every computer scientist ought to know about cryptographic systems, security protocols, and secure information flow in programs.More and more working computer professionals are confronted with the use, maintenance, or customization of cryptographic components and program certification mechanisms for local or mobile code. This text for advanced undergraduate and beginning graduate students tells what every computer scientist ought to know about cryptographic systems, security protocols, and secure information flow in programs. Highlights include a detailed description of the new AES Rijndael and a practical implementation of optimal RSA. A novel feature of the book is the presentation of a formal model-checking tool for specifying and debugging security protocols. Also included are numerous implementation exercises and programming projects.More and more working computer professionals are confronted with the use, maintenance, or customization of cryptographic components and program certification mechanisms for local or mobile code. This text for advanced undergraduate and beginning graduate students tells what every computer scientist ought to know about cryptographic systems, security protocols, and secure information flow in programs. Highlights include a detailed description of the new AES Rijndael and a practical implementation of optimal RSA. A novel feature of the book is the presentation of a formal model-checking tool for specifying and debugging security protocols. Also included are numerous implementation exercises and programming projects.This volume details what every computer scientist ought to know about cryptographic systems, security protocols, and secure information flow in programs. Highlights include discussions of the new advanced encryption standard Rijndael ; an optimal public-key encryption using RSA which turns textbook RSA into a practical implementation; standard security models for information flow in computer programs or humal“'