implement objects and functions required for encryption and authentication