Encryption is one of the core technologies for IT security. Different cryptographic approaches can be used to assure both data confidentiality and data integrity. Some of the overarching concepts behind cryptography include the following:
Symmetric key encryption. This assumes that each end of the communication has the same cryptographic key and that each end keeps this key private. Symmetric key cryptosystems can function as either block ciphers or stream ciphers. Selected cryptosystems employing symmetric keys include:
Asymmetric key encryption. This allows what is known as public key encryption. In asymmetric cryptosystems, one key can be distributed freely (the public key) as long as the complementary private key remains secret. Selected cryptosystems and protocols employing asymmetric key encryption include:
Hashing algorithms. Hashing algorithms are one-way mathematical functions that condense substantial blocks of data into relatively unique resulting values called hashes. Hashing does not keep the data secret. Rather, hashing is used on each end of a communication to verify that the message has not been altered in transit. Selected hashing algorithms include: