Ever wondered how your data stays safe online? This deep-dive in the Go programming language will teach you all about encryption, password security, ciphers, and more. After you master the fundamentals, you'll learn how each cryptographic primitive is used in real-world applications.
Overview
Syllabus
- Symmetric Encryption
- Learn the basics of cryptography: encrypting and decrypting a secret message with a key
- Encoding
- To be able to work with encrypted data, you need to understand how information is encoded in different formats
- Brute Force
- Learn about the most primitive, but most important kind of crypto attack
- Caesar Cipher
- Learn about the fundamentals of ciphers, starting with Julius Caesar's famous cipher
- XOR
- Study the importance of the XOR operation in cryptography and how it can be used to create the perfect cipher
- Stream Ciphers
- Stream ciphers can be used to encrypt data as it flows through a system
- Block Ciphers
- Block ciphers are commonly used to encrypt large amounts of data at rest, like entire hard drives
- DES
- DES is an older block cipher that's important to understand to appreciate modern block ciphers
- AES
- AES is a secure, modern block cipher that's used in many production applications
- Asymmetric Encryption
- Asymmetric encryption is used in HTTPS, digital signatues, and really anywhere two parties need to securely communicate
- RSA
- RSA is one of the most popular asymmetric encryption algorithms
- Hash Functions
- Hashing has many applications in cryptography, including password security and message integrity
- Digital Signatures
- Digital signatures are a way to prove that a message was sent by a particular party
- KDFs
- Key derivation functions are how we derive keys from passwords or from other keys securely
Taught by
Lane Wagner, Allan, Matt, Hunter, and Dan