There are many examples of symmetric and asymmetric algorithms. Examples of symmetric algorithms are AES- 128, AES-192, and AES-256. Examples of asymmetric algorithms include RSA and ECC. Here is a quick description of both the AES and ECC. I have also included other symmetric algorithms like OFB and GCM.

__AES (AES-128, AES-192, and AES-256)__

AES comprises of three different block ciphers. The three block ciphers are AES-128, AES-192, and AES- 256. Each cipher uses cryptographic keys of 128-, 192- and 256-bits respectively to encrypt and decrypt data in stacks of 128 bits. AES is a type of symmetric key encryption and thus the cipher uses the same key for both encrypting and decrypting. The sender and receiver must use and know the same secret key. All key lengths must be of 92- or 256-bit key lengths. There are 10 rounds for 128-bit keys, 12 rounds for 192-bit keys and 14 rounds for 256-bit keys. There are several processing steps that make up a round. This includes substitution, transposition, and mixing of the plaintext and converting it into the ciphertext.

The first step of the cipher is to put the data into an array. The cipher transformations are then repeated over a number of encryption rounds. The number of rounds is determined by the key length, with 10 rounds for 128-bit keys, 12 rounds for 192-bit keys and 14 rounds for 256-bit keys.

Using the substitution table, perform the first transformation which is substitution of data. The second transformation shifts data rows while the third mixes columns. The last transformation is a XOR operation which is performed on each column. This also uses a different part of the encryption.

__ECC__

ECC is also known as Elliptic Curve Cryptography. It is an extension and a follow up to the very popular public key cryptography. In public key cryptography, there are two different keys used. There is a public key, which everyone uses and a private key which only a user knows.

For ECC, there is both encryption and decryption. For encryption, the public key is applied to the target information. This is done using a predefined operation to produce a pseudo-random. Now for decryption. To decrypt, the private key is used for the pseudo random number using a predefined operation to get back the target information. The algorithm is important because it relies on one main fact: Encryption is easy while Decryption is hard. This makes decryption a lot harder and basically important unless you get direct access to the key. It was the first system to allow secure information transfer without a shared key.

The computers today are getting faster and faster. This surprisingly can be a problem because at some point, people can’t make the pseudo-prime large enough to thwart an attack. ECC (elliptic curve cryptography) now comes in. This extension uses the properties of an elliptical curve. Same pair of keys and modular arithmetic to encrypt and decrypt the target information.

__OFB__

Output feedback (OFB) is a mode of operation for a block cipher. It is like the CFB in that it allows encryption for different block sizes. However, there are notable differences. The output of the encryption block function is the feedback (not the ciphertext). For the plaintext block, The XOR (exclusive OR) value is created independently for both thee plaintext and ciphertext. This mode is not tolerable for error propagation. It is very similar to the CFB mode in that it uses an initialization vector (IV). Changing this IV also notably changes the ciphertext in the same plaintext block. It’s an asymmetric key encryption algorithm.

The OFB can tolerate errors in the ciphertext like the ciphertext bit errors, though it can’t correct after losing the ciphertext bits because it disturbs the aligning of the keystream. A problem with output feedback is that the plaintext can be easily altered, but using a digital signature scheme can overcome this problem.

__GCM__

GCM is constructed from an approved symmetric key block cipher with a block size of 128 bits, such as the Advanced Encryption Standard (AES) algorithm. This makes the GCM mode very similar to the AES cryptography mode. We can say that the GCM is a mode of operation of the AES algorithm. GCM uses a variation of the Counter Mode of operation for the encryption

Blocks are typically numbered in order. These block numbers are then encrypted with a block cipher called E. The result of this encryption is then given a specific value and is XOR’ed with the plaintext to produce a cipher text.

GCM mode provides both privacy and integrity. For encryption, GCM plays a very important role. GCM maintains a counter. For each block of data, the block sends the current value of the counter to the block cipher. I then takes the output of the block cipher, and exclusive or’s that with the plaintext to form the ciphertext.

GCM is also an important algorithm because it is one of the few of AES type algorithms that are asymmetric in nature. Thus, a different cipher for the encryption and decryption side. It is also important to state that key distribution is very key for these algorithms to function and produce the best results.