Cryptography

Cryptography #

Definitions #

  • Cryptography: the study of secret or secure communications
  • Cryptology: the study of math behind cryptography
  • Cryptanalysis: code-breaking
  • Plaintext: an unencrypted input/output of a cryptosystem
  • Cryptotext: the encrypted output of a cryptosystem

Goals of cryptosystems:

  • Confidentiality: keeping information private or secret
  • Integrity: ensuring that information has not been modified
  • Authentication: proving somebody is who they say they are
  • Non-repudiation: proving that a message was sent by a specific actor

Modern cryptography definitions #

Key primitives #

  • Key exchange: allows you to agree on a secret number
  • Symmetric cipher: encrypts data using a shared key
    • Block cipher: input fixed message size (for DES, 64 bits)
    • Stream cipher: encrypts data one bit at a time
  • Asymmetric cipher: encrypts/decrypts data with different keys
    • Diffie-Hellman (DH): generate shared key from individual public/private keys
    • Rivest-Shamir-Adleman (RSA): encrypt message using public key/private key
  • Hash algorithm: generates a fingerprint for data
    • Function that creates a “fingerprint” of an arbitrary input that is deterministic, fixed length, and very difficult to reverse
  • Digital signature: proves that data was sent by holder of private key

Building blocks of modern cryptography #

  • Digital signatures: proof of identity of users/server
  • Key exchange protocol: share secret key between users/user and server
  • Symmetric cipher: use the secret key to encrypt/decrypt messages
  • Hashes and signatures: make sure the message hasn’t been tampered with

Uses of encryption #

  • Transport encryption: create a secure tunnel (e.g., HTTPS)
    • TLS - Transport Layer Security
  • Message encryption: protect messages
    • End-to-End encryption: used in iMessage, WhatsApp, Signal
  • At-rest encryption: encrypt data while it’s being stored
    • Keys can be stored in hardware