Software Security

Table of Contents

Crypto

Allows secure communication between two or more parties in presence of an attacker

Goals:

Terms:

Kerckhoff’s principle:

Can’t make the plaintext space larger ⇒ use a larger key space

Attacks:

End-to-end encryption: only sender and recipient have key

Cryptographic hashes:

Well-known hashes:

Random numbers

Blockchains:

Symmetric crypto

Uses single key to encrypt and decrypt.

One-time pad:

Perfect encryption

Stream ciphers:

Block ciphers:

Cipher block chaining (CBC)

Padding blocks:

Padding oracle attack:

Symmetric signatures/message authentication code

Asymmetric crypto

Two keys:

Example is RSA

Key management

Cannot trust Bob to tell Alice public key online:

Key distribution center (KDC):

Certification authority (CA)

Symmetric encryption key establishment

SSL and HTTPS

Password storage