Recent years have seen the development of powerful tools for verifying hardware and software systems, as companies worldwide realise the need for improved means of validating their products. There is increasing demand for training in basic methods in formal reasoning so that students can gain proficiency in logic-based verification methods. The second edition of this successful textbook addresses both those requirements, by continuing to provide a clear introduction to formal reasoning which is both relevant to the needs of modern computer science and rigorous enough for practical application. Improvements to the first edition have been made throughout, with extra and expanded sections on SAT solvers, existential/universal second-order logic, micro-models, programming by contract and total correctness. The coverage of model-checking has been substantially updated. Further exercises have been added. Internet support for the book includes worked solutions for all exercises for teachers,
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 advanced encryption standard Rijndael; a complete description of an optimal public-key encryption using RSA which turns 'textbook RSA' into a practical implementation; a current, and formal discussion of standard security models for information flow in computer programs or human organizations; and a discussion of moral, legal, and political issues. Another novel feature of the book is the presentation of a formal model-checking tool for specifying and debugging security protocols. The book also includes numerous implementation exercises
The books in this trilogy capture the foundational core of advanced informatics. The authors make the foundations accessible, enabling students to become effective problem solvers.This first volume es