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:
a
a^2
a^3
a^4
a^5
a^6
a^7
1
1
1
1
1
1
1
2
4
1
2
4
1
2
3
2
6
4
5
1
3
4
2
1
4
2
1
1
5
4
6
2
3
1
5
6
1
6
1
6
1
6
Diffie-Hellmann Key Exchange (DHKE)
Choose a large prime p and an element a which is a primitive element
Person one chooses a secret k and computes a^k, and shares that with person two
Person two chooses a secret key j and computes a^j, and shares that with person one
The shared secret is a^(k*j) = (a^k)^j = (a^j)^k
Encryption keywords
Stream cypher
Block cypher
Symmetric
Asymmetric
Hash function