Implementing cryptography using Python Scytale of Sparta Substitution Ciphers Caesar Cipher ROT 13 Atbash Cipher Vigenère Cipher Playfair Hill 2x2 Column Transposition Affine Cipher Summary Chapter 4 Cryptographic Math and Frequency Analysis Modular Arithmetic and the Greatest Common Devisor Prime Numbers Prime Number Theorem School Primality Test Fermats Little Theorem Miller Rabin Primality Test Generate Large Prime Numbers Basic Group Theory Orders of Elements Modular Inverses Fermats Little Theorem to Find the Inverse Extending the GCD Eulers Theorem Analytical Attacks Frequency Analysis Attack Models Shannons Theorem One Time Pad XOR AND and OR One Time Pad Function One Way Hashes Cryptographic One Way Hashes Message Authentication Codes Perfect Forward Secrecy Published and Proprietary Encryption Algorithms Summary References Chapter 3 Classical Cryptography Password Best Practices Password Storage Hashing Passwords Salting Passwords Stretching Passwords Password Tools Obfuscating Data ASCII Encoding Base64 Encoding Text Binary Data Decoding Historical Ciphers Using Strings Introducing Operators Understanding Arithmetic Operators Understanding Comparison Operators Understanding Logical Operators Understanding Assignment Operators Understanding Bitwise Operators Understanding Membership Operators Understanding Identity Operators Using Conditionals Using Loops for while continue break else Using Files Understanding Python Semantics Sequence Types Introducing Custom Functions Downloading Files Using Python Introducing Python Modules Creating a Reverse Cipher Summary Chapter 2 Cryptographic Protocols and Perfect Secrecy The Study of Cryptology Understanding Cryptography Cryptographys Famous Family: Alice and Bob Diffie Hellman Data Origin Authentication Entity Authentication Symmetric Algorithms Asymmetric Algorithms The Needham Schroeder Protocols The Otway Rees Protocol Kerberos Multiple Domain Kerberos X.509 Formal Validation of Cryptographic Protocols Configuring Your First Cryptographic Library Understanding Cryptanalysis Brute Force Attacks Side Channel Attacks Social Engineering Learn to deploy proven cryptographic tools in your applications and services Cryptography is quite simply what makes security and privacy in the digital world possible. Tech professionals including programmers IT admins and security analysts need to understand how cryptography works to protect users data and assets. Implementing Cryptography Using Python will teach you the essentials so you can apply proven cryptographic tools to secure your applications and systems. Because this book uses Python an easily accessible language that has become one of the standards for cryptography implementation youll be able to quickly learn how to secure applications and data of all kinds. In this easy to read guide well known cybersecurity expert Shannon Bray walks you through creating secure communications in public channels using public key cryptography. Youll also explore methods of authenticating messages to ensure that they havent been tampered with in transit. Finally youll learn how to use digital signatures to let others verify the messages sent through your services. Learn how to implement proven cryptographic tools using easy to understand examples written in Python Discover the history of cryptography and understand its critical importance in todays digital communication systems Work through real world examples to understand the pros and cons of various authentication methods Protect your end users and ensure that your applications and systems are using up to date cryptography Cover Title Page Copyright Page About the Author Acknowledgments Contents at a Glance Contents Introduction Chapter 1 Introduction to Cryptography and Python Exploring Algorithms Why Use Python Downloading and Installing Python Installing on Ubuntu Installing on macOS Installing on Windows Installing on a Chromebook Installing Additional Packages Installing Pip NumPy and Matplotlib Installing the Cryptography Package Installing Additional Packages Testing Your Install Diving into Python Basics Using Variables