Encryption keywords

  • Stream cypher
  • Block cypher
  • Symmetric
  • Asymmetric
  • Hash function

Block cyphers

  • DES - 56 bit key
  • Triple DES (why not double DES?)
  • AES - 128bit+ keys

Goals of public-key/private-key cryptography

  • Encryption (a third-party can't intercept communication)
  • Verifiability (I know that you're the person who's saying what you're saying)
  • Avoiding deniability (If you say something you can't later deny saying it)
  • Avoiding tampering (a third-party can't modify messages)

Public-key cryptography: Core concepts

  • Public key & private key
  • One-way functions
  • Arithmetic in groups

Group properties:

  • Associativity - (a + b) + c = a + (b + c)
  • Commutativity - a + b = b + a
  • Identity element - 0 + a = a
  • Inverses - for every a, there's a b such that a + b = 0

Groups - a simple example (Z_12, + )

Take p be some prime number, then (1, 2, .... , p - 1) is a group under multiplication modulo p

For encryption, we're particularly interested in exponentiation (repeatedly multiplying the same number)

Try p = 7:

aa^2a^3a^4a^5a^6a^7
1111111
2412412
3264513
4214211
5462315
6161616

Diffie-Hellmann Key Exchange (DHKE)

  1. Choose a large prime p and an element a which is a primitive element
  2. Person one chooses a secret k and computes a^k, and shares that with person two
  3. Person two chooses a secret key j and computes a^j, and shares that with person one
  4. The shared secret is a^(k*j) = (a^k)^j = (a^j)^k