Learn coding concepts by building real projects with modern technologies
• ## What is Cryptography? A Complete Overview

### Sep 08, 2021 by Lane Wagner

What is cryptography? Simply put, Cryptography provides a method for secure communication. It stops unauthorized parties, commonly referred to as adversaries or hackers, from gaining access to the secret messages communicated between authorized parties. The method that cryptography provides is called encryption. Encryption transforms a key and input, the plaintext, into an encrypted output, the ciphertext. Encryption algorithms are only considered secure if attackers cannot determine any properties of the plaintext or the key when presented with only the ciphertext.

• ## Intro to the One-Time Pad Cipher

### Jun 28, 2021 by Lane Wagner

In cryptography, the one-time pad, or OTP is a way of encrypting information so securely that it’s impossible to be cracked. That said, OTP has a major drawback in that it requires both parties to have access to the same key before a message is encrypted. How the one-time pad cipher works When using the one-time pad, a message and a secret key are required to start. Each bit of the original message, assuming we can use binary data, is encrypted by using an XOR operation on it and the corresponding bit from the secret key.

• ## Base64 vs Base58 Encoding

### Nov 03, 2020 by Lane Wagner

Base64 is one of the most popular encoding formats for representing data. Have some binary data? Base64 encodes it for convenient readability and parsing. Base58 is just another encoding format (with 58 characters instead of 64, and has gained popularity largely due to Bitcoin and other cryptocurrencies. Also, if you came here confused, encryption and encoding are not the same! Take a look at this article for more information on encryption vs encoding.

• ## What Is Entropy In Cryptography?

### Sep 28, 2020 by Lane Wagner

If you’re familiar with the laws of thermodynamics, you may recognize the second law as the one that deals with entropy. In the realm of physics, entropy represents the degree of disorder in a system. Because systems tend to degrade over time, thermodynamic energy becomes less available to do mechanical work. In cryptography, entropy has a distinct but similar meaning. In cryptography, entropy refers to the randomness collected by a system for use in algorithms that require random data.

• ## Elliptic Curve Cryptography: A Basic Introduction

### Sep 17, 2020 by Lane Wagner

Elliptic Curve Cryptography (ECC) is a modern public-key encryption technique famous for being smaller, faster, and more efficient than incumbents. Bitcoin, for example, uses ECC as its asymmetric cryptosystem because it is so lightweight. The mathematical entity that makes all of this possible is the elliptic curve, so read on to learn how these curves enable some of the most advanced cryptography in the world. What is elliptic curve cryptography used for?

• ## Is AES-256 Quantum Resistant?

### Sep 10, 2020 by Lane Wagner

With quantum computers getting more powerful each year, many worry about the safety of modern encryption standards. As quantum computers improve in performance and the number of qubits used for calculations increases, current cryptosystems are under threat. AES-256 is one of the most powerful symmetric ciphers, but will it remain secure in a post-quantum world? What will break post-quantum? Many asymmetric encryption algorithms have been mathematically proven to be broken by quantum computers using Shor’s algorithm.

• ## Bcrypt Step by Step

### Aug 24, 2020 by Lane Wagner

Bcrypt is a key derivation function, which can be thought of as a special kind of hash function. Its purpose is to slowly convert a piece of input data to a fixed-size, deterministic, and unpredictable output. A common use case is to convert a password into an n-bit cryptographic key, which can then be used for safe authentication. What does a Bcrypt hash look like? Using Bcrypt on the password myPassword123 would produce something like the following:

• ## (Very) Basic Intro to Lattices in Cryptography

### Aug 21, 2020 by Lane Wagner

Lattice-based cryptography, an important contender in the race for quantum-safe encryption, describes constructions of cryptographic primitives that involve mathematical lattices. Lattices, as they relate to crypto, have been coming into the spotlight recently. In January 2019, Many of the semifinalists in the NIST post-quantum-cryptography competition were based on lattices. Lattice-based cryptography has promising aspects that give us hope for cryptographic security in a post-quantum world. What is a Lattice? According to Wikipedia, a lattice is the set of all integer linear combinations of basis vectors:

• ## Shamir’s Secret Sharing Step-By-Step

### Aug 18, 2020 by Lane Wagner

Adi Shamir’s Secret Sharing is a cryptographic algorithm that allows distinct parties to jointly share ownership of a single secret by holding shares. The original secret can only be reconstructed by using a minimum number of shares, which allows different parties to cooperate without the need to fully trust one another. Example Problem To illustrate, let’s imagine that a family of four all share a single Bitcoin wallet. This Bitcoin wallet contains a single private key that all members of the family co-own.

• ## “Practical Cryptography” Course Released

### Aug 14, 2020 by Lane Wagner

We just launched our new Practical Cryptography course, a code-in-the-browser tutorial where students build cryptographic functions in the Go programming language. Practical Cryptography stands out among online cryptography courses because it not only teaches crypto fundamentals, but it allows users to get hands-on experience building out the code. What’s Included? The course has four modules covering the following topics: Cryptography History and Overview Stream Ciphers and XOR math Block Ciphers and Key Schedules Hashes and Key Derivation Functions We are already planning a sequel to this course which will cover public-key cryptography and some other more advanced concepts.