User Tools

Site Tools


security:cryptography-fundamentals

This is an old revision of the document!


Cryptography Fundamentals

This document introduces the fundamental concepts of cryptography.

Introduction

When systems communicate over a network, there are three main security goals:

* Confidentiality * Integrity * Authenticity

Cryptography helps achieve these goals.

Security Goals

Confidentiality

Only authorized parties can read the data.

Example:

Alice sends a password to Bob.

Alice ---- Internet ---- Bob
^
Attacker 

Without protection, the attacker can read the password.

Solution:

Encryption

Integrity

Data must not be modified during transmission.

Example:

Original:
Transfer $100

Modified:
Transfer $10000 

Solution:

Digital Signatures

Authenticity

Verify who actually sent the data.

Example:

Someone claims to be your bank.

How do you know it is really your bank?

Solution:

Digital Signatures
Certificates

What Is Cryptography?

Cryptography is the practice of protecting information.

Main categories:

Cryptography
│
├── Encryption
│
└── Digital Signatures

What Is A Key?

A key is a value used by cryptographic algorithms.

Think of it like a house key:

With key    -> Open the door
Without key -> Cannot open the door

Encryption

Encryption protects:

Confidentiality

Goal:

Prevent unauthorized parties from reading data.

Process:

Plain Text
    ↓
Encrypt
    ↓
Cipher Text
    ↓
Decrypt
    ↓
Plain Text

Example:

Hello World
    ↓
A83D91F22C...

Only someone with the correct key can recover the original message.

Types of Cryptography

There are two major cryptographic models:

Cryptography
│
├── Symmetric Cryptography
│
└── Asymmetric Cryptography

Encryption vs Digital Signature

A common misconception is that encryption and digital signatures work the same way.

In reality:

Capability Symmetric Asymmetric
Encryption Yes Yes
Digital Signature No Yes

Explanation:

* Encryption can use either Symmetric or Asymmetric cryptography. * Digital Signatures require a Public Key and a Private Key, so they use Asymmetric cryptography.

Symmetric Cryptography

Definition

Symmetric cryptography uses:

ONE SECRET KEY

for both encryption and decryption.

Workflow

Secret Key
    ↓
Encrypt
    ↓
Cipher Text
    ↓
Decrypt
    ↓
Plain Text

Example:

Encrypt("Hello", secret_key)

Decrypt(ciphertext, secret_key) 

Advantages

* Fast * Efficient * Easy to implement

Disadvantages

The secret key must be shared securely.

If the key is stolen:

Attacker can decrypt everything.

Common Algorithms

* AES * ChaCha20 * DES (legacy)

Asymmetric Cryptography

Definition

Asymmetric cryptography uses:

TWO KEYS

Public Key
Private Key 

The keys are mathematically related.

Public Key

Public key can be shared freely.

Examples:

* Websites * Certificates * API documentation

Anyone may know the public key.

Private Key

Private key must remain secret.

Only the owner should possess it.

If leaked:

Security is compromised.

Asymmetric Encryption

Purpose

Provides:

Confidentiality

Workflow

Public Key  -> Encrypt

Private Key -> Decrypt 

Example

Alice owns:

Public Key
Private Key

Bob wants to send a secret message.

Bob:

Encrypt(message, Alice Public Key)

Alice:

Decrypt(ciphertext, Alice Private Key)

Result

Anyone can encrypt.

Only Alice can decrypt. 

Digital Signatures

Digital signatures provide:

* Integrity * Authenticity

Purpose

Answer two questions:

Who sent this?

Was this modified? 

Workflow

Private Key -> Sign

Public Key  -> Verify 

Example

Server signs a document.

Document
    ↓
Sign with Private Key
    ↓
Signed Document

Verification:

Signed Document
    ↓
Verify with Public Key
    ↓
Valid / Invalid

Result

Only the owner can sign.

Everyone can verify. 

Encryption vs Digital Signature

Encryption

Goal:

Hide data

Question answered:

Can someone read this?

Examples:

AES
ChaCha20
RSA Encryption

Workflows:

Symmetric:

Secret Key -> Encrypt
Secret Key -> Decrypt

Asymmetric:

Public Key  -> Encrypt
Private Key -> Decrypt

Digital Signature

Goal:

Verify authenticity
Detect tampering

Questions answered:

Who sent this?

Was this modified? 

Workflow:

Private Key -> Sign

Public Key  -> Verify 

Examples:

JWT RS256
JWT ES256
SSH Key Authentication
TLS Certificates
Git Commit Signing
Code Signing

Real-World Examples

Technology Encryption Digital Signature
HTTPS/TLS AES, ChaCha20 RSA, ECDSA, Ed25519
SSH AES, ChaCha20 RSA, Ed25519
JWT HS256 HMAC (shared secret) No
JWT RS256 No RSA Signature
JWT ES256 No ECDSA Signature
PGP/GPG Yes Yes

Important Note About JWT

JWT signatures are often confused with digital signatures.

JWT HS256:

Shared Secret -> Sign
Shared Secret -> Verify

Uses HMAC and a shared secret.

JWT RS256:

Private Key -> Sign
Public Key  -> Verify

Uses a true digital signature.

Quick Summary

Capability Symmetric Asymmetric
Encryption Yes Yes
Digital Signature No Yes
Encryption
=
Hide data
=
Confidentiality

# Digital Signature

Verify sender
+
Detect tampering
================

Authenticity + Integrity

# Symmetric

One Secret Key

# Asymmetric

Public Key + Private Key

# Encryption

Symmetric OR Asymmetric

# Digital Signature

Asymmetric 
security/cryptography-fundamentals.1781262343.txt.gz · Last modified: by phong2018