 ## Diffie-Hellman

How can two people in a crowded room derive a secret that only the pair know, without revealing the secret to anyone else that might be listening? That is exactly the scenario the Diffie-Hellman Key Exchange exists to solve. The Diffie-Hellman Key Exchange is a means for two parties to jointly establish a shared secret over […] ## Anti-Replay

The Problem Before we can describe the solution, we must first adequately describe the problem Anti-Replay is trying to solve. Imagine your local bank branch office.  Imagine someone going to that branch location, and depositing \$100 in cash into their account.  At some point following the transaction, that branch location will send some packets to the bank headquarters […] ## Using Asymmetric Keys

We’ve established how Asymmetric encryption makes use of two mathematically linked keys: One referred to as the Public Key, and the other referred to as the Private Key. We’ve also established that what one key encrypts, only the other can decrypt. These two attributes allow us to perform two separate operations with a Key Pair. Asymmetric Encryption Below is […] ## RSA Example

The RSA algorithm is the most widely used Asymmetric Encryption algorithm deployed to date. The acronym is derived from the last names of the three mathematicians who created it in 1977:  Ron Rivest, Adi Shamir, Leonard Adleman. In order to understand the algorithm, there are a few terms we have to define: Prime – A number […] ## Asymmetric Encryption

Earlier, we learned that Symmetric encryption is an encryption scheme that uses the same key to encrypt and decrypt. Conversely, Asymmetric encryption, uses different keys to encrypt and decrypt. Lets take a look at a simple example. For the sake of simplicity, let us pretend for this example that there are only the lower case letters a – […] ## Hashing Algorithm

The first concept we need to discuss in our exploration of Cryptography is that of a Hashing Algorithm. A Hashing Algorithm is a mathematical formula that takes a Message of arbitrary length as input and produces as output a representational sample of the original data. For instance, a rudimentary example of a hashing algorithm is simply adding […] ## Message Integrity

In the world of secured communications, Message Integrity describes the concept of ensuring that data has not been modified in transit. This is typically accomplished with the use of a Hashing algorithm.  We learned earlier what a Hashing Algorithm does. Now we can take a look at how they are actually used to provide Message Integrity. The basic premise is […] ## Symmetric Encryption

We learned earlier that Symmetric encryption is an encryption scheme that encrypts and decrypts using the same secret key. Now we will explore a bit further into what that involves. Let’s start with a simple example: As pictured, if we start with the plain text hello, and use a Symmetric encryption algorithm of simply rotating the […]