A public key infrastructure (PKI) provides all the components necessary for different types of users and entities to be able to communicate securely and in a predictable manner. Consists of: hardware, applications, policies, services, programming interfaces, cryptographic algorithms, protocols, users, and utilities. It should be used if you do not automatically trust individuals you do not know.