Zp denotes a multiplicative group of integers {a|0<a<p} where p is a prime number. ?? denotes a generator for Zp. x denotes a secret integer, 0<x<p???1, known only to the Client. y denotes a secret integer, 0<y<p???1, known only to the Server. r denotes a random number used as an Initialization vector for hashing and encryption.