Encryption Algorithms can be categorized into different classifications:
- transformation type
- processing type
- cryptographic function type & number of keys used
Transformation Types
Link to original
- substitution cipher - substituting every occurrence of a symbol/group-of-bits with another symbol/group-of-bits
- permutation/transposition cipher - rearranging a sequence of symbols/bits to some other pseudorandom sequence
Processing Types
Link to original
- block cipher is a method of encrypting text (to produce cipher-text) in which a cryptographic key and algorithm are applied to a block of data (for example, 64 contiguous bits) at once as a group rather than to one bit at a time
- stream cipher is a symmetric key cipher where plaintext digits are combined with a pseudorandom cipher digit stream (key-stream)
Cryptographic Function Type & Number of Keys Used
Link to originalEncryption Algorithms are classified in the following ways
Cryptographic Function Type
# of keys
description
1
Link to original
- both parties use same key to encrypt and decrypt all messages
2
Link to original
- utilizes 2 distinct keys and is used for:
- encryption - the public-key (public encryption key) is used to encrypt messages, while the private-key (private decryption key) is used to decrypt
- signing - the private-key (private signing key) is used to sign a message which generates a digital signature, while the public-key (public signature key) is used to verify the message’s integrity
1
Link to original
- utilizes a cryptographic hash function and a secret cryptographic key for either:
- encryption - for message confidentiality
- HMAC - for message authenticity/integrity (HMAC is a hash-based form of MIC)
- secure hash functions generating HMACs could be used in place of “digital signatures”, but does not protect against non-repudiation (where 1 of the 2 parties that share the same key could secretly sign a message and say it was signed from the other)
1
Link to original
- is a physically-defined “digital fingerprint” that serves as a unique identifier for a semiconductor device such as a microprocessor