# Class 2

## Cryptography Basics

Cryptography is the essential building block of independence for organisations on the Internet, just like armies are the essential building blocks of states, because otherwise one state just takes over another.

- Julian Assange

Cryptocurrency is based on cryptographic primitives. That's where the "crypto" in cryptocurrency comes from!

### Public Key Cryptography

Public key cryptography (PKC) is an encryption technique that uses a paired public and private key algorithm for secure data communication. The message sender (Bob) uses a recipient's (Alice) public key to encrypt a message. To decrypt the sender's message, only the recipient's private key may be used.

Here's how that works:

### Hash

A hash is a function which takes an input of any size and returns a fixed-size alphanumeric string with the following characteristics:

- It is very easy to create a hash from any input string
- [Find answer in detailed AGENDA you get when you register]
- [Find answer in detailed AGENDA you get when you register]

Bitcoin makes heavy use of the cryptographic hash function SHA256 in order to create a "digital signature" which can be used to prove that the originally entered data has not been altered.

### Hash Chain

A hash chain is a successive set of applications of a cryptographic hash. For example, If we apply the function h, multiple times, to a string x like so,

h(h(h(x))) gives a hash chain of length 3, often denoted h³(x)

We'll look at a how a hash chain works, use those hash functions to construct a binary tree and implement a Merkle tree.

### Merkle Tree

How are Merkle trees used in cryptocurrency/blockchain technologies?

In this class, we’ll figure that out as we learn how to use cryptographic primitives, we'll generate public and private key pairs, create digital identities, sign and secure messages .

When your registration has been confirmed, you will receive a zip file containing the course outline (AGENDA) with reference links and PDFs organized by class.

Copyright: Cryptocurrencies Developers Class. Do not copy without permission.