AES Encryption and Decryption
- 撤销(Ctrl+Z)
- 重做(Ctrl+Y)
- 清空
- H标题(Ctrl+1~6)
- 一级标题
- 二级标题
- 三级标题
- 四级标题
- 五级标题
- 六级标题
- 粗体(Ctrl+B)
- 斜体(Ctrl+I)
- 删除线
- 插入引用(Ctrl+Q)
- 无序列表(Ctrl+U)
- 有序列表(Ctrl+O)
- 表格
- 插入分割线
- 插入链接(Ctrl+L)
- 插入图片
- 添加图片链接
- 插入代码块
- 保存(Ctrl+S)
- 开启预览
- 开启目录导航
- 关闭同步滚动
- 全屏(按ESC还原)
# Tool Introduction This tool is an online AES encryption and decryption tool that supports encryption modes such as GCM, CBC, CTR, CFB, OFB, and ECB. Users can select files or text for AES encryption and decryption operations. Text encryption and decryption support various padding schemes, including PKCS7Padding, PKCS5Padding, NoPadding, ISO 10126, ANSI X923, ISO/IEC 7816-4, and Zero Padding. Additionally, the tool supports both Base64 and Hex output formats, and the key size can be selected as 128, 192, or 256 bits. # Introduction to AES The Advanced Encryption Standard (AES) is a symmetric key encryption algorithm used to protect electronic data. It was adopted by the National Institute of Standards and Technology (NIST) in 2001, replacing the previous DES (Data Encryption Standard) algorithm as the new encryption standard. ## Definition of AES AES is a symmetric block cipher algorithm that uses the same key for both encryption and decryption. It is based on the Rijndael algorithm, proposed by Belgian cryptographers Joan Daemen and Vincent Rijmen, and was chosen as the new encryption standard. ## History and Development of AES By the end of the 20th century, with increasing computing power, the 56-bit key length of DES was no longer sufficient to resist brute-force attacks. To address this, NIST began the search for a new encryption standard in 1997. After several rounds of evaluations, the Rijndael algorithm was selected in 2000, and AES was officially released in 2001. ## Importance and Application of AES Due to its efficiency and security, AES is widely used in various fields, including finance, government, military, and personal data protection. It has become a core algorithm for securing data and is embedded in both hardware and software. # AES Principles {{{width="80%" height="80%"}}} ## Overview of Symmetric Encryption Algorithms Symmetric encryption algorithms use the same key for both encryption and decryption. The sender and receiver must share this key, which requires secure key distribution. ### Block Ciphers and Block Size AES is a block cipher algorithm that divides plaintext into fixed-size blocks (128 bits) and then encrypts each block. Block ciphers are highly efficient for processing large amounts of data. ### Key Length AES supports three key lengths: 128 bits, 192 bits, and 256 bits. The longer the key, the higher the security, though processing speed may be slightly slower. ## AES Algorithm Details The AES encryption process includes an initial round key addition and multiple encryption rounds, with each round involving specific operations. The decryption process is the reverse of encryption. ### Rounds and Round Functions The number of encryption rounds in AES depends on the key length: - 128-bit key: 10 rounds - 192-bit key: 12 rounds - 256-bit key: 14 rounds Each round consists of the following four steps: **SubBytes** Each byte in the state matrix is replaced using a fixed Substitution box (S-box) to enhance the confusion property of the algorithm. **ShiftRows** The rows of the state matrix are cyclically shifted left by a number of positions depending on the row number, increasing diffusion between bytes. **MixColumns** Each column undergoes polynomial multiplication, further mixing the data within the columns to increase the complexity of the ciphertext. **AddRoundKey** The current state is XORed with the round key, introducing key information. ### Key Expansion and Key Schedule Key expansion generates a series of round keys from the initial key, which are used for each encryption round. This process involves key rotation, S-box substitution, and XORing with constants. # Introduction to Encryption Modes Since block ciphers can only encrypt fixed-size data blocks, operating modes are needed to handle data of arbitrary length. Common AES operating modes include: **Electronic Codebook (ECB) Mode** Each block is encrypted independently, but identical plaintext blocks produce identical ciphertext blocks, making it susceptible to analysis. Not recommended. **Cipher Block Chaining (CBC) Mode** Each plaintext block is XORed with the previous ciphertext block before encryption, and the first block is XORed with an initialization vector (IV). This improves security but prevents parallel encryption. **Cipher Feedback (CFB) Mode** The previous ciphertext block is used as input for the next block, providing partial error recovery capability. **Output Feedback (OFB) Mode** Similar to CFB, but uses the output of the encryption function as input for the next block, mimicking stream cipher behavior. **Counter (CTR) Mode** A counter is used to generate the key stream, which is XORed with the plaintext block. This mode supports parallel processing and is highly efficient. **Galois/Counter Mode (GCM)** GCM is an authenticated encryption mode that combines the efficiency of CTR mode with the authentication functionality of Galois field arithmetic, ensuring both confidentiality and integrity of the data. ### Features of GCM **Efficiency**: Supports parallel computation, making it capable of utilizing multi-core processors to speed up encryption and decryption. **Authentication**: Provides data encryption along with an authentication tag to verify data integrity and authenticity. **Flexibility**: Supports additional authenticated data (AAD) of arbitrary length, which is included in the authentication but not encrypted. ### Recommended Encryption Modes - Prefer modes with authentication features: GCM can provide both confidentiality and integrity. - Avoid modes with known security issues: such as ECB. - Properly manage initialization vectors (IVs) and counters: Ensure IV uniqueness and unpredictability to prevent replay attacks and key stream repetition. # Padding Schemes When using block ciphers like AES, the length of the plaintext may not be an integer multiple of the block size (128 bits, i.e., 16 bytes). Padding is required to ensure that the plaintext can be properly divided into blocks. Common padding schemes include: **PKCS#5 and PKCS#7 Padding** **PKCS#5 Padding**: Mainly used for block ciphers with an 8-byte block size. **PKCS#7 Padding**: Applicable to block ciphers of any block size, including AES's 16-byte blocks. **Padding Method**: Adds a number of bytes at the end of the plaintext, with the value of each added byte equal to the number of bytes added. **Example**: If 5 bytes need to be added, each padding byte will have the value 0x05. **For AES**, since the block size is 16 bytes, **PKCS#5 and PKCS#7 padding are effectively the same in practice**. They can be considered equivalent for AES encryption. **Zero Padding** Pads the plaintext with 0x00 bytes until the block length is reached. However, during decryption, it may be difficult to distinguish between padding zeros and original data zeros. **ANSI X923 Padding** Pads the plaintext with 0x00 bytes, with the last byte indicating the number of padding bytes added. **ISO 10126 Padding** Adds random data at the end of the plaintext, with the last byte indicating the number of padding bytes added. This increases the unpredictability of the padding. **ISO/IEC 7816-4 Padding** Adds a single 0x80 byte at the end of the plaintext, followed by as many 0x00 bytes as necessary to reach the block length. **No Padding** In some modes (e.g., stream modes or specific padding schemes), no padding is required. However, it is crucial to ensure that the plaintext length is a multiple of the block size to avoid errors. ::: tip References [Advanced Encryption Standard](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) :::
Tool Introduction
This tool is an online AES encryption and decryption tool that supports encryption modes such as GCM, CBC, CTR, CFB, OFB, and ECB. Users can select files or text for AES encryption and decryption operations. Text encryption and decryption support various padding schemes, including PKCS7Padding, PKCS5Padding, NoPadding, ISO 10126, ANSI X923, ISO/IEC 7816-4, and Zero Padding. Additionally, the tool supports both Base64 and Hex output formats, and the key size can be selected as 128, 192, or 256 bits.
Introduction to AES
The Advanced Encryption Standard (AES) is a symmetric key encryption algorithm used to protect electronic data. It was adopted by the National Institute of Standards and Technology (NIST) in 2001, replacing the previous DES (Data Encryption Standard) algorithm as the new encryption standard.
Definition of AES
AES is a symmetric block cipher algorithm that uses the same key for both encryption and decryption. It is based on the Rijndael algorithm, proposed by Belgian cryptographers Joan Daemen and Vincent Rijmen, and was chosen as the new encryption standard.
History and Development of AES
By the end of the 20th century, with increasing computing power, the 56-bit key length of DES was no longer sufficient to resist brute-force attacks. To address this, NIST began the search for a new encryption standard in 1997. After several rounds of evaluations, the Rijndael algorithm was selected in 2000, and AES was officially released in 2001.
Importance and Application of AES
Due to its efficiency and security, AES is widely used in various fields, including finance, government, military, and personal data protection. It has become a core algorithm for securing data and is embedded in both hardware and software.
AES Principles

Overview of Symmetric Encryption Algorithms
Symmetric encryption algorithms use the same key for both encryption and decryption. The sender and receiver must share this key, which requires secure key distribution.
Block Ciphers and Block Size
AES is a block cipher algorithm that divides plaintext into fixed-size blocks (128 bits) and then encrypts each block. Block ciphers are highly efficient for processing large amounts of data.
Key Length
AES supports three key lengths: 128 bits, 192 bits, and 256 bits. The longer the key, the higher the security, though processing speed may be slightly slower.
AES Algorithm Details
The AES encryption process includes an initial round key addition and multiple encryption rounds, with each round involving specific operations. The decryption process is the reverse of encryption.
Rounds and Round Functions
The number of encryption rounds in AES depends on the key length:
- 128-bit key: 10 rounds
- 192-bit key: 12 rounds
- 256-bit key: 14 rounds
Each round consists of the following four steps:
SubBytes
Each byte in the state matrix is replaced using a fixed Substitution box (S-box) to enhance the confusion property of the algorithm.
ShiftRows
The rows of the state matrix are cyclically shifted left by a number of positions depending on the row number, increasing diffusion between bytes.
MixColumns
Each column undergoes polynomial multiplication, further mixing the data within the columns to increase the complexity of the ciphertext.
AddRoundKey
The current state is XORed with the round key, introducing key information.
Key Expansion and Key Schedule
Key expansion generates a series of round keys from the initial key, which are used for each encryption round. This process involves key rotation, S-box substitution, and XORing with constants.
Introduction to Encryption Modes
Since block ciphers can only encrypt fixed-size data blocks, operating modes are needed to handle data of arbitrary length. Common AES operating modes include:
Electronic Codebook (ECB) Mode
Each block is encrypted independently, but identical plaintext blocks produce identical ciphertext blocks, making it susceptible to analysis. Not recommended.
Cipher Block Chaining (CBC) Mode
Each plaintext block is XORed with the previous ciphertext block before encryption, and the first block is XORed with an initialization vector (IV). This improves security but prevents parallel encryption.
Cipher Feedback (CFB) Mode
The previous ciphertext block is used as input for the next block, providing partial error recovery capability.
Output Feedback (OFB) Mode
Similar to CFB, but uses the output of the encryption function as input for the next block, mimicking stream cipher behavior.
Counter (CTR) Mode
A counter is used to generate the key stream, which is XORed with the plaintext block. This mode supports parallel processing and is highly efficient.
Galois/Counter Mode (GCM)
GCM is an authenticated encryption mode that combines the efficiency of CTR mode with the authentication functionality of Galois field arithmetic, ensuring both confidentiality and integrity of the data.
Features of GCM
Efficiency: Supports parallel computation, making it capable of utilizing multi-core processors to speed up encryption and decryption.
Authentication: Provides data encryption along with an authentication tag to verify data integrity and authenticity.
Flexibility: Supports additional authenticated data (AAD) of arbitrary length, which is included in the authentication but not encrypted.
Recommended Encryption Modes
- Prefer modes with authentication features: GCM can provide both confidentiality and integrity.
- Avoid modes with known security issues: such as ECB.
- Properly manage initialization vectors (IVs) and counters: Ensure IV uniqueness and unpredictability to prevent replay attacks and key stream repetition.
Padding Schemes
When using block ciphers like AES, the length of the plaintext may not be an integer multiple of the block size (128 bits, i.e., 16 bytes). Padding is required to ensure that the plaintext can be properly divided into blocks. Common padding schemes include:
PKCS#5 and PKCS#7 Padding
PKCS#5 Padding: Mainly used for block ciphers with an 8-byte block size.
PKCS#7 Padding: Applicable to block ciphers of any block size, including AES’s 16-byte blocks.
Padding Method: Adds a number of bytes at the end of the plaintext, with the value of each added byte equal to the number of bytes added.
Example: If 5 bytes need to be added, each padding byte will have the value 0x05.
For AES, since the block size is 16 bytes, PKCS#5 and PKCS#7 padding are effectively the same in practice. They can be considered equivalent for AES encryption.
Zero Padding
Pads the plaintext with 0x00 bytes until the block length is reached. However, during decryption, it may be difficult to distinguish between padding zeros and original data zeros.
ANSI X923 Padding
Pads the plaintext with 0x00 bytes, with the last byte indicating the number of padding bytes added.
ISO 10126 Padding
Adds random data at the end of the plaintext, with the last byte indicating the number of padding bytes added. This increases the unpredictability of the padding.
ISO/IEC 7816-4 Padding
Adds a single 0x80 byte at the end of the plaintext, followed by as many 0x00 bytes as necessary to reach the block length.
No Padding
In some modes (e.g., stream modes or specific padding schemes), no padding is required. However, it is crucial to ensure that the plaintext length is a multiple of the block size to avoid errors.
References
FAQ
- Will the files processed by this tool be uploaded to the website server?
No. The AES encryption and decryption of files with this tool is done in the local browser client, and no files are uploaded to the server.
Privacy and Security
This tool does not store any generated keys or the keys you input on the website. All operations are conducted over HTTPS to ensure that keys are not intercepted during transmission.
Post a Comment
No comments yet
Looking forward to your comment
Post a comment to express your thoughts