Cryptography is the processing of data to conceal any of the information it contains. Algorithms for encoding data are usually complicated and almost always time-consuming. While the cryptographic domain includes some primitive components, the domain has about a dozen popular algorithms implemented completely. The functions can be divided into four groups: symmetric encryption algorithms, public key encryption algorithms, hashing functions, and primitives.
The security of cryptography schemes are generally based on the expense of attempting randomly to decrypt balanced with the practicality of the time to correctly encrypt and decrypt. For this reason, large integers are the core of many cryptographic schemes. Big numbers in this case are generally more than 64 bits long and less than 4,096.
Public-key cryptography allows an entity that wishes to receive secure transmissions to create a system for encrypting data that can only be read by that entity. Such an entity creates a pair of keys based on large primes. The public key is published or provided to any other entity that wishes to send a secure transmission. The private key and primes are kept secret and are used to decode any transmissions encoded with the public key.
The result is an easy and secure transmission method that anyone with the public key can use. Further, if some authority certifies the identity of the owner of the public key, then this method doubles as part of an identity certification scheme, since only the person certified can read the encrypted messages.
Categories of cryptographic algorithms and specific algorithms are:
- Symmetric cryptography
- Data Encryption Standard (DES) and Triple Data Encryption Standard (TDES)
- Rijndael, Blowfish, and Twofish block ciphers
- Hash and data authentication algorithm (DAA) functions:
- MD5, HMAC-MD5
- SHA1, SHA256/384/512, HMAC-SHA1, HMAC-SHA256/384/512
- DAADES, DAATDES
- DAARijdael, DAABlowfish, DAATwofish
- Public key cryptography
- Infrastructure functions such as pseudorandom number generation (PNRG) and prime number generation
- Digital Signature Algorithm (DSA)