Skip to content

Hands-On Cryptography for Python Developers [Video], published by Packt

License

Notifications You must be signed in to change notification settings

PacktPublishing/Hands-On-Cryptography-for-Python-Developers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hands-On-Cryptography-for-Python-Developers

Hands-On Cryptography for Python Developers [Video], published by Packt

Introduction to cryptography

The first section gives a brief introduction to cryptography. We provide a few examples and put together our first cryptographic construction. Following, we show that this construction is susceptible to a trivial statistical attack. Finally, we introduce the concepts of security and entropy in relation to attack complexity. We also give an example in which a strong cipher construction can be broken due to lack of entropy.

  • Video1 - Why cryptography?
  • Video2 - Example: substitution cipher
  • Video3 - Example: frequency analysis
  • Video4 - Security vs. complexity vs. entropy
  • Video5 - Example: bad entropy

Symmetric cryptography

The simplest form of cryptography is symmetric. We look at the symmetric cryptography of today and why some modern ciphers are advised against.

  • Video1 - Block ciphers
  • Video2 - AES
  • Video3 - Example: ECB copy-paste attack
  • Video4 - Example: CBC bit-flip attack
  • Video5 - Example: CBC padding oracle
  • Video6 - Stream ciphers
  • Video7 - Example: GCM nonce repetition

Asymmetric cryptography

Public-key cryptography is one of the most important breakthroughs in the history of cryptography. We will look at a few examples and attacks, some of which we will implement.

  • Video - Factoring and RSA
  • Video2 - Example: Schoolbook RSA and why it is weak
  • Video3 - Elliptic curves
  • Video4 - Examples: Nonce-reuse in ECDSA
  • Video5 - Discrete logarithm and Diffie-Hellman
  • Video6 - Baby-step giant-step
  • Video7 - Pohlig-Hellman?

Hash functions

Hash functions play an important role in computer science. We will focus on cryptographic hash functions and how to use them.

  • Video - What is a hash function?
  • Video2 - Cryptographic hash functions
  • Video3 - Bad and broken
  • Video4 - How to use a hash function
  • Video5 - Storing passwords
  • Video6 - Bruteforce and rainbow tables
  • Video7 - Example
  • Video8 - Key-derivation functions

Message-authentication codes

When sending messages over an unprotected channel, a malicious adversary can modify encrypted data. In this section, we give a brief overview on how to detect such attacks.

  • Video - How to protect integrity of messages
  • Video2 - Example: a bad MAC
  • Video3 - Example: a secure construction
  • Video4 - GCM revisited

Zero-knowledge and commitment schemes

This section describes theory of how to prove that you know a secret without revealing any information about the secret. We look at a few simple ways of doing that.

  • Video - Simple analogy (room)
  • Video2 - Proofs
  • Video3 - Graph isomorphism or some other simple example?
  • Video4 - Commitment schemes
  • Video5 - A simple example

Secret sharing

This section describes how to share secrets among several people. We will focus on threshold scheme called Shamir’s secret sharing.

  • Video - Threshold schemes
  • Video2 - Lagrange interpolation
  • Video3 - Shamir’s secret sharing
  • Video4 - Implementation
  • Video5 - Pitfalls

HTTPS

We will look at HTTPS, understand why it is needed and go through the basic idea of it. We show how to use Wireshark to decrypt traffic under weak keys.

  • Video - Why HTTPS
  • Video2 - Certificates
  • Video3 - The cornerstones of HTTPS
  • Video4 - Decrypting HTTPS traffic
  • Video5 - Example: Sweet32?

A few protocols

A brief summary of cryptographic protocols used in today’s applications. We look at a few of them

  • Video - Dining cryptographers
  • Video2 - OTR
  • Video3 - Double ratchet (WhatsApp, Skype, etc.)
  • Video4 - Other protocols

Cryptocurrency

Cryptocurrency is an uprising star in the international economy. We describe the basics.

  • Video - Proof of work
  • Video2 - Hashcash
  • Video3 - Bitcoin
  • Video4 - Let’s implement a simple blockchain

About

Hands-On Cryptography for Python Developers [Video], published by Packt

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages