”;
SEED encryption is a symmetric key encryption technique created by the Korean Information Security Agency. It is a block cipher encryption technique which works with 16-byte data blocks and a 128-bit key length.
The SEED encryption algorithm encrypts plain text data into cipher text by combining substitution and permutation techniques. To generate the final cipher text, the process uses a Feistel network structure that goes through several rounds of encryption.
Encryption of SEED
- SEED encryption uses a key schedule to create round keys, which are used in each round of encryption.
- The key schedule is created by performing a series of bitwise operations on the original key, like XOR, AND, and left and right shifts.
- The encryption procedure requires dividing the plain text into 16-byte blocks and executing the encryption algorithm to each block separately.
- The algorithm encrypts the data using a combination of substitution and permutation algorithms, and then applies numerous rounds of encryption to each block to produce the final cipher text.
Decryption of SEED
- The decryption procedure reverses the encryption process.
- The cipher text is divided into 16-byte blocks, and the decryption technique is executed to each block individually, using the identical round keys created during the encryption procedure.
Structure of SEED
SEED”s input/output block size and key length are both 128 bits. SEED features a 16-round Feistel structure. A 128-bit input is separated into two 64-bit blocks (L, R). The right 64-bit block is used to input the round function F, which generates a 64-bit subkey Ki based on the key schedule.
A pseudo code for SEED”s structure is as follows −
for (i = 1; i <= 16; i++) { L = R; R = L ^ F(Ki, R); }
Round Function F
SEED makes use of two 8×8 S-boxes, permutations, rotations, and fundamental modular operations like exclusive OR (XOR) and adds to ensure huge security, speed, and simplicity in implementation.
The round function F divides a 64-bit input block into two 32-bit blocks (R0, R1) and uses four phases −
- A mixing phase for two 32-bit subkey blocks (Ki0, Ki1).
- Function G has three layers and allows for the mixing of two 32-bit blocks.
Function F produces the following outputs (R0” and R1”) −
R0'' = G[G[G[(R0 ^ Ki0) ^ (R1 ^ Ki1)] + (R0 ^ Ki0)] + G[(R0 ^ Ki0) ^ (R1 ^ Ki1)] + G[G[(R0 ^ Ki0) ^ (R1 ^ Ki1)] + (R0 ^ Ki0)] R1'' = G[G[G[(R0 ^ Ki0) ^ (R1 ^ Ki1)] + (R0 ^ Ki0)]. + G[(R0 ^ Ki0) ^ (R1 ^ Ki1)] + G[G[(R0 ^ Ki0) ^ (R1 ^ Ki1)]
Function G
The function G consists of two layers: two 8×8 S-boxes and block permutation with sixteen 8-bit sub-blocks. The function G with four 8-bit inputs (X0, X1, X2, and X3) gives the following outputs −
Z0 equals {S1(X0) & m0} ^ {S2(X1) & m1} ^ {S1(X2) & m2} ^ {S2(X3) & m3} Z1 equals {S1(X0) & m1} ^ {S2(X1) & m2} ^ {S1(X2) & m3} ^ {S2(X3) & m0} Z2 equals {S1(X0) & m2} ^ {S2(X1) & m3} ^ {S1(X2) & m0} ^ {S2(X3) & m1} Z3 equals {S1(X0) & m3} ^ {S2(X1) & m0} ^ {S1(X2) & m1} ^ {S2(X3) & m2}
where m0 = 0xfc; m1 = 0xf3; m2 = 0xcf; and m3 = 0x3f.
To improve G function efficiency, four ”SS-box” are defined as follows −
SS0(X) = {S1(X)& m3} || {S1(X) & m2} || {S1(X) & m1} || {S1(X) & m0} SS1(X) = {S2(X) & m0} || {S2(X) & m3} || {S2(X) & m2} || {S2(X) & m1} SS2(X) = {S1(X) & m1} || {S1(X) & m0} || {S1(X) & m3} || {S1(X) & m2} SS3(X) = {S2(X) & m2} || {S2(X) & m1} || {S2(X) & m0} || {S2(X) & m3}
Applications of SEED
- SEED encryption is used to secure network communication, which includes VPNs, SSL/TLS, and IPsec.
- SEED encryption secures data saved on discs, USB drives, and other storage media.
- This encryption technique is used to protect data on mobile devices like smartphones and tablets.
- Government agencies and military organisations utilise SEED encryption to secure confidential material.
Advantages
Below are some advantages and benifits of using SEED encryption technique −
- SEED encryption has a 128-bit key length, making it highly resistant to brute force attacks.
- SEED encryption is a rapid method that can encrypt and decrypt data easily, making it ideal for real-time applications.
- SEED encryption is widely used and supported by various security products and services.
- SEED encryption can be utilised in a wide range of applications, like network security, data storage, and mobile devices.
- SEED encryption has undergone substantial research and is resistant to several known cryptanalysis attacks.
Disadvantages
Besides the advantages of SEED algorithm it also has some disadvantages of using it.
- SEED encryption needs good key management because the encryption”s security is dependent on the key”s strength and confidentiality.
- SEED encryption has a key length of 128 bits, which can be insufficient for some applications that demand stronger encryption.
- SEED encryption is subject to side-channel attacks such as timing and power analysis.
”;