Practical Cryptography in Python


Book Description

Develop a greater intuition for the proper use of cryptography. This book teaches the basics of writing cryptographic algorithms in Python, demystifies cryptographic internals, and demonstrates common ways cryptography is used incorrectly. Cryptography is the lifeblood of the digital world’s security infrastructure. From governments around the world to the average consumer, most communications are protected in some form or another by cryptography. These days, even Google searches are encrypted. Despite its ubiquity, cryptography is easy to misconfigure, misuse, and misunderstand. Developers building cryptographic operations into their applications are not typically experts in the subject, and may not fully grasp the implication of different algorithms, modes, and other parameters. The concepts in this book are largely taught by example, including incorrect uses of cryptography and how "bad" cryptography can be broken. By digging into the guts of cryptography, you can experience what works, what doesn't, and why. What You’ll Learn Understand where cryptography is used, why, and how it gets misused Know what secure hashing is used for and its basic propertiesGet up to speed on algorithms and modes for block ciphers such as AES, and see how bad configurations breakUse message integrity and/or digital signatures to protect messagesUtilize modern symmetric ciphers such as AES-GCM and CHACHAPractice the basics of public key cryptography, including ECDSA signaturesDiscover how RSA encryption can be broken if insecure padding is usedEmploy TLS connections for secure communicationsFind out how certificates work and modern improvements such as certificate pinning and certificate transparency (CT) logs Who This Book Is For IT administrators and software developers familiar with Python. Although readers may have some knowledge of cryptography, the book assumes that the reader is starting from scratch.




Practical Cryptography in Python


Book Description

Develop a greater intuition for the proper use of cryptography. This book teaches the basics of writing cryptographic algorithms in Python, demystifies cryptographic internals, and demonstrates common ways cryptography is used incorrectly. Cryptography is the lifeblood of the digital world’s security infrastructure. From governments around the world to the average consumer, most communications are protected in some form or another by cryptography. These days, even Google searches are encrypted. Despite its ubiquity, cryptography is easy to misconfigure, misuse, and misunderstand. Developers building cryptographic operations into their applications are not typically experts in the subject, and may not fully grasp the implication of different algorithms, modes, and other parameters. The concepts in this book are largely taught by example, including incorrect uses of cryptography and how "bad" cryptography can be broken. By digging into the guts of cryptography, you can experience what works, what doesn't, and why. What You’ll Learn Understand where cryptography is used, why, and how it gets misused Know what secure hashing is used for and its basic properties Get up to speed on algorithms and modes for block ciphers such as AES, and see how bad configurations break Use message integrity and/or digital signatures to protect messages Utilize modern symmetric ciphers such as AES-GCM and CHACHA Practice the basics of public key cryptography, including ECDSA signatures Discover how RSA encryption can be broken if insecure padding is used Employ TLS connections for secure communications Find out how certificates work and modern improvements such as certificate pinning and certificate transparency (CT) logs Who This Book Is For IT administrators and software developers familiar with Python. Although readers may have some knowledge of cryptography, the book assumes that the reader is starting from scratch.




Practical Cryptography in Python


Book Description

Develop a greater intuition for the proper use of cryptography. This book teaches the basics of writing cryptographic algorithms in Python, demystifies cryptographic internals, and demonstrates common ways cryptography is used incorrectly. Cryptography is the lifeblood of the digital world's security infrastructure. From governments around the world to the average consumer, most communications are protected in some form or another by cryptography. These days, even Google searches are encrypted. Despite its ubiquity, cryptography is easy to misconfigure, misuse, and misunderstand. Developers building cryptographic operations into their applications are not typically experts in the subject, and may not fully grasp the implication of different algorithms, modes, and other parameters. The concepts in this book are largely taught by example, including incorrect uses of cryptography and how "bad" cryptography can be broken. By digging into the guts of cryptography, you can experience what works, what doesn't, and why. What You'll Learn Understand where cryptography is used, why, and how it gets misused Know what secure hashing is used for and its basic properties Get up to speed on algorithms and modes for block ciphers such as AES, and see how bad configurations break Use message integrity and/or digital signatures to protect messages Utilize modern symmetric ciphers such as AES-GCM and CHACHA Practice the basics of public key cryptography, including ECDSA signatures Discover how RSA encryption can be broken if insecure padding is used Employ TLS connections for secure communications Find out how certificates work and modern improvements such as certificate pinning and certificate transparency (CT) logs Who This Book Is For IT administrators and software developers familiar with Python. Although readers may have some knowledge of cryptography, the book assumes that the reader is starting from scratch.




Hands-On Cryptography with Python


Book Description

Learn to evaluate and compare data encryption methods and attack cryptographic systems Key Features Explore popular and important cryptographic methods Compare cryptographic modes and understand their limitations Learn to perform attacks on cryptographic systems Book Description Cryptography is essential for protecting sensitive information, but it is often performed inadequately or incorrectly. Hands-On Cryptography with Python starts by showing you how to encrypt and evaluate your data. The book will then walk you through various data encryption methods,such as obfuscation, hashing, and strong encryption, and will show how you can attack cryptographic systems. You will learn how to create hashes, crack them, and will understand why they are so different from each other. In the concluding chapters, you will use three NIST-recommended systems: the Advanced Encryption Standard (AES), the Secure Hash Algorithm (SHA), and the Rivest-Shamir-Adleman (RSA). By the end of this book, you will be able to deal with common errors in encryption. What you will learn Protect data with encryption and hashing Explore and compare various encryption methods Encrypt data using the Caesar Cipher technique Make hashes and crack them Learn how to use three NIST-recommended systems: AES, SHA, and RSA Understand common errors in encryption and exploit them Who this book is for Hands-On Cryptography with Python is for security professionals who want to learn to encrypt and evaluate data, and compare different encryption methods.




Implementing Cryptography Using Python


Book Description

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, you’ll 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. You’ll also explore methods of authenticating messages to ensure that they haven’t been tampered with in transit. Finally, you’ll 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 today’s 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




Serious Cryptography


Book Description

This practical guide to modern encryption breaks down the fundamental mathematical concepts at the heart of cryptography without shying away from meaty discussions of how they work. You’ll learn about authenticated encryption, secure randomness, hash functions, block ciphers, and public-key techniques such as RSA and elliptic curve cryptography. You’ll also learn: - Key concepts in cryptography, such as computational security, attacker models, and forward secrecy - The strengths and limitations of the TLS protocol behind HTTPS secure websites - Quantum computation and post-quantum cryptography - About various vulnerabilities by examining numerous code examples and use cases - How to choose the best algorithm or protocol and ask vendors the right questions Each chapter includes a discussion of common implementation mistakes using real-world examples and details what could go wrong and how to avoid these pitfalls. Whether you’re a seasoned practitioner or a beginner looking to dive into the field, Serious Cryptography will provide a complete survey of modern encryption and its applications.




Cracking Codes with Python


Book Description

Learn how to program in Python while making and breaking ciphers—algorithms used to create and send secret messages! After a crash course in Python programming basics, you’ll learn to make, test, and hack programs that encrypt text with classical ciphers like the transposition cipher and Vigenère cipher. You’ll begin with simple programs for the reverse and Caesar ciphers and then work your way up to public key cryptography, the type of encryption used to secure today’s online transactions, including digital signatures, email, and Bitcoin. Each program includes the full code and a line-by-line explanation of how things work. By the end of the book, you’ll have learned how to code in Python and you’ll have the clever programs to prove it! You’ll also learn how to: - Combine loops, variables, and flow control statements into real working programs - Use dictionary files to instantly detect whether decrypted messages are valid English or gibberish - Create test programs to make sure that your code encrypts and decrypts correctly - Code (and hack!) a working example of the affine cipher, which uses modular arithmetic to encrypt a message - Break ciphers with techniques such as brute-force and frequency analysis There’s no better way to learn to code than to play with real programs. Cracking Codes with Python makes the learning fun!




Practical Cryptography


Book Description

Table of contents




Real-World Cryptography


Book Description

"A staggeringly comprehensive review of the state of modern cryptography. Essential for anyone getting up to speed in information security." - Thomas Doylend, Green Rocket Security An all-practical guide to the cryptography behind common tools and protocols that will help you make excellent security choices for your systems and applications. In Real-World Cryptography, you will find: Best practices for using cryptography Diagrams and explanations of cryptographic algorithms Implementing digital signatures and zero-knowledge proofs Specialized hardware for attacks and highly adversarial environments Identifying and fixing bad practices Choosing the right cryptographic tool for any problem Real-World Cryptography reveals the cryptographic techniques that drive the security of web APIs, registering and logging in users, and even the blockchain. You’ll learn how these techniques power modern security, and how to apply them to your own projects. Alongside modern methods, the book also anticipates the future of cryptography, diving into emerging and cutting-edge advances such as cryptocurrencies, and post-quantum cryptography. All techniques are fully illustrated with diagrams and examples so you can easily see how to put them into practice. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Cryptography is the essential foundation of IT security. To stay ahead of the bad actors attacking your systems, you need to understand the tools, frameworks, and protocols that protect your networks and applications. This book introduces authentication, encryption, signatures, secret-keeping, and other cryptography concepts in plain language and beautiful illustrations. About the book Real-World Cryptography teaches practical techniques for day-to-day work as a developer, sysadmin, or security practitioner. There’s no complex math or jargon: Modern cryptography methods are explored through clever graphics and real-world use cases. You’ll learn building blocks like hash functions and signatures; cryptographic protocols like HTTPS and secure messaging; and cutting-edge advances like post-quantum cryptography and cryptocurrencies. This book is a joy to read—and it might just save your bacon the next time you’re targeted by an adversary after your data. What's inside Implementing digital signatures and zero-knowledge proofs Specialized hardware for attacks and highly adversarial environments Identifying and fixing bad practices Choosing the right cryptographic tool for any problem About the reader For cryptography beginners with no previous experience in the field. About the author David Wong is a cryptography engineer. He is an active contributor to internet standards including Transport Layer Security. Table of Contents PART 1 PRIMITIVES: THE INGREDIENTS OF CRYPTOGRAPHY 1 Introduction 2 Hash functions 3 Message authentication codes 4 Authenticated encryption 5 Key exchanges 6 Asymmetric encryption and hybrid encryption 7 Signatures and zero-knowledge proofs 8 Randomness and secrets PART 2 PROTOCOLS: THE RECIPES OF CRYPTOGRAPHY 9 Secure transport 10 End-to-end encryption 11 User authentication 12 Crypto as in cryptocurrency? 13 Hardware cryptography 14 Post-quantum cryptography 15 Is this it? Next-generation cryptography 16 When and where cryptography fails




Cryptography for Developers


Book Description

The only guide for software developers who must learn and implement cryptography safely and cost effectively.Cryptography for Developers begins with a chapter that introduces the subject of cryptography to the reader. The second chapter discusses how to implement large integer arithmetic as required by RSA and ECC public key algorithms The subsequent chapters discuss the implementation of symmetric ciphers, one-way hashes, message authentication codes, combined authentication and encryption modes, public key cryptography and finally portable coding practices. Each chapter includes in-depth discussion on memory/size/speed performance trade-offs as well as what cryptographic problems are solved with the specific topics at hand. - The author is the developer of the industry standard cryptographic suite of tools called LibTom - A regular expert speaker at industry conferences and events on this development