Choosing Strong Passwords - calculation
A^L
A:= symbols; eg A-Z - A = 28
L:= length of password
Dictionary Attacks
Salt
Pepper
Hash Stretching
- by doing several hashing rounds
Password-Based Authentication Schemes
C - S: I’m user xxx
S - C: nonce
C - S: HMAC(n, pw)
DH-EKE – Encrypted Key Exchange based on DH
A -> B: A, {X = g^x mod p}_pw
B -> A: {Y = g^y mod p}_pw
for themself: calculate key
B -> A: {N_B}_k
A -> B: {N_B, N_A}_k
B -> A: {N_A}_kSPEKE – Simple Password Exponential Key Exchange
A -> B: A, Q_A = f(pw)^x mod p
B -> A: B, Q_B = f(pw)^y mod p
for themself: k = h(Q_B^x mod p) = h(Q_A^y mod p)
B -> A: {N_B}_k
A -> B: {N_B, N_A}_k
B -> A: {N_A}_kTime-based token
Counter-based token