AES encryption decryption online tool which performs encryption or decryption of an input data based on the given modes (ECB, CBC, CFB or OFB) and key bit sizes (128, 192 or 256 bits) using AES algorithm.
The encryption/decryption with a cipher key of 128, 192, or 256 bits is denoted as AES-128, AES-192, AES-256 respectively.
|Block size||128 bits|
|key sizes||128, 192, 256 bits|
|Rounds||10, 12 or 14 (depending on key size)|
|Design principle||Substitution–permutation network|
|Designers||Vincent Rijmen, Joan Daemen|
|Also, known for|| |
The Advanced Encryption Standard (AES) is a block cipher that encrypts a 128-bit block (plaintext) to a 128-bit block (ciphertext), or decrypts a 128-bit block (ciphertext) to a 128-bit block (plaintext).
AES encryption/decryption flows consists a back-to-back sequence of AES transformations, operating on a 128-bit State (data) and a round key. The flows depend on the cipher key length, where total transformation steps for encryption/decryption as follows -
Refer following encryption pseudo code -Note -
round_key_encryptstores the first 128 bits of the 'cipher key', which is used for the first XOR operation (aka round 0).
# data is a 128-bit block to be encrypted. # The round keys are already stored in the round_key_encrypt tmp = addRoundKey(data, round_key_encrypt) for round = 1-9 or 1-11 or 1-13: tmp = subBytes(tmp) tmp = shiftRows(tmp) tmp = mixColumns(tmp) tmp = addRoundKey(tmp, round_key_encrypt[round]) end loop tmp = subBytes(tmp) tmp = shiftRows(tmp) tmp = addRoundKey(tmp, round_key_encrypt[10 or 12 or 14]) result = tmp
Similarly for decryption - follow 'Inverse Cipher', where steps reversed along with invert operations e.g.
invSubButes(tmp), invShiftRows(tmp), invMixColumns(tmp)
Developer Tool-kit is a set of online developer tools that help get the results of various functionality on-the-fly and diagnose.
Note - Since none of the user information does get stored on server, it is safe to use these tools