By Lane Wagner – @wagslane on Twitter The purpose of cryptography is to keep information private, and the purpose of open-source is to make code public… So we shouldn’t open source our cryptography algorithms right? I’ve been asked this several times by multiple people so I figured it is a subject worth addressing. Many developers seem to … Read more Is Open-Source Cryptography Really Secure?
By Lane Wagner – @wagslane on Twitter Building a from-scratch server or using a lightweight framework is empowering. With that power comes responsibility, specifically the responsibility to securely store user’s passwords. Can I Store Passwords In Plain Text? To demonstrate the potential dangers, let us assume we DON’T hash passwords on a fake example website, LoveMatchingToday. Inevitably … Read more Hashing Passwords – Python Cryptography Examples
By Lane Wagner – @wagslane on Twitter Lattice-based cryptography has been coming into the spotlight recently. In January 2019, Many of the semifinalists in the NIST post-quantum-cryptography competition were based on lattices. Let’s explore the basics of lattices and how they apply to cryptosystems. What is a Lattice? According to Wikipedia, a lattice is the set of … Read more (Very) Basic Intro to Lattices in Cryptography
If you are getting into cryptography, or just trying to understand the fundamentals, you may have noticed that the exclusive-or operation is used quite often, especially in ciphers. What is XOR (⊕)? XOR, or “exclusive or” operates on binary data. It returns true if both of its inputs are opposites (one false and one true), … Read more Why is Exclusive Or (XOR) Important in Cryptography?
Quantum Computing Quantum computing may not be coming quite as fast as some in the field had certainly feared (or perhaps hoped). Google did, however, solve an impressive problem this year. They published a paper in Nature. It stated that their quantum processor solved a problem that, in contrast, a digital computer would take 10,000 … Read more Cryptography Trends And News Going Into 2020
AES stands for “Advanced Encryption Standard” and is a specification that has selected the Rijndael cipher as its symmetric key ciphering algorithm. AES encrypts a message with a private key and no one except the key holder can decrypt the message. This is useful for many reasons, but a good example is a laptop that … Read more (Very) Basic Intro to The AES-256 Cipher
This is going to be a basic introduction to hash functions. I will assume most of my audience is here to gain an understanding of why hash functions are used and the basic idea of why they work. My goal is to explain it in a general sense, I will be omitting proofs and implementation … Read more (Very) Basic Intro to Hash Functions (SHA-256, MD5, etc)
A key derivation function, or KDF, derives one or many secret keys from a secret value. Therefore, If you’ve ever needed to store a password in a database or create a private key from a password, you may have used a KDF. For instance, some examples of popular KDFs: Argon2 Scrypt PBKDF2 Are KDFs just … Read more (Very) Basic Intro to Key Derivation Functions (Argon2, Scrypt, etc)
By @wagslane (twitter) We use an algorithm called Adi Shamir’s secret sharing in order to share ownership of a secret among a group of participants. Then, in order to calculate the original secret, a minimum number of shares must be used. Example Problem To illustrate, let us imagine that a family of four shares a … Read more (Very) Basic Shamir’s Secret Sharing
Many new developers are jumping right into coding (usually for those fat paychecks) without learning much about the history of Computer Science. People regarded Alan Turing as the father of Computer Science. He was first a cryptologist and mathematician. Then, he pioneered the field of CS in order to solve cryptological problems. In this article, … Read more Cryptology, Cryptography, and Cryptanalysis – Get your Vocabulary Straight!