The Lightweight Encryption Algorithm (also known as LEA) is a 128-bit
block cipher
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called ''blocks''. Block ciphers are specified cryptographic primitive, elementary components in the design of many cryptographic protocols and ...
developed by
South Korea in 2013 to provide confidentiality in high-speed environments such as
big data
Though used sometimes loosely partly because of a lack of formal definition, the interpretation that seems to best describe Big data is the one associated with large body of information that we could not comprehend when used only in smaller am ...
and
cloud computing, as well as lightweight environments such as
IoT devices and
mobile devices.
LEA has three different key lengths: 128, 192, and 256 bits. LEA encrypts data about 1.5 to 2 times faster than
AES
AES may refer to:
Businesses and organizations Companies
* AES Corporation, an American electricity company
* AES Data, former owner of Daisy Systems Holland
* AES Eletropaulo, a former Brazilian electricity company
* AES Andes, formerly AES Gener ...
, the most widely used block cipher in various software environments.
LEA is one of the cryptographic algorithms approved by the Korean Cryptographic Module Validation Program (KCMVP) and is the national standard of Republic of Korea (KS X 3246). LEA is included in the ISO/IEC 29192-2:2019 standard (Information security - Lightweight cryptography - Part 2: Block ciphers).
Specification
The block cipher LEA consisting of ARX operations (modular Addition:
, bitwise Rotation:
,
, and bitwise XOR
) for 32-bit words processes data blocks of 128 bits and has three different key lengths: 128, 192, and 256 bits.
LEA with a 128-bit key, LEA with a 192-bit key, and LEA with a 256-bit key are referred to as “LEA-128”, “LEA-192”, and “LEA-256”, respectively.
The number of rounds is 24 for LEA-128, 28 for LEA-192, and 32 for LEA-256.
Encryption
Let
be a 128-bit block of plaintext and
be a 128-bit block of ciphertext, where
and
(
) are 32-bit blocks.
Let
(
) be 192-bit round keys, where
(
) are 32-bit blocks.
Here
is the number of rounds for the LEA algorithm.
The encryption operation is described as follows:
#
# for
to
##
##
##
##
#
Decryption
The decryption operation is as follows:
#
# for
down to
##
##
##
##
#
Key schedule
The key schedule of LEA supports 128, 192, and 256-bit keys and outputs 192-bit round keys
(
) for the data processing part.
Key schedule for LEA-128
Let
be a 128-bit key, where
(
) are 32-bit blocks.
The key schedule for LEA-128 takes
and four 32-bit constants
(
) as inputs and outputs twenty-four 192-bit round keys
(
).
The key schedule operation for LEA-128 is as follows:
#
# for
to
##
##
##
##
##
Key schedule for LEA-192
Let
be a 192-bit key, where
(
) are 32-bit blocks.
The key schedule for LEA-192 takes
and six 32-bit constants
(
) as inputs and outputs twenty-eight 192-bit round keys
(
).
The key schedule operation for LEA-192 is as follows:
#
# for
to
##
##
##
##
##
##
##
Key schedule for LEA-256
Let
be a 256-bit key, where
(
) are 32-bit blocks.
The key schedule for LEA-192 takes
and eight 32-bit constants
(
) as inputs and outputs thirty-two 192-bit round keys
(
).
The key schedule operation for LEA-256 is as follows:
#
# for
to
##
##
##
##
##
##
##
Constant values
The eight 32-bit constant values
(
) used in the key schedule are given in the following table.
Security
As of 2019, no successful attack on full-round LEA is known.
As is typical for iterated block ciphers, reduced-round variants have been attacked.
The best published attacks on LEA in the standard attack model (CPA/CCA with unknown key) are boomerang attacks and differential linear attacks.
The security margin to the whole rounds ratio is greater than 37% against various existing cryptanalytic techniques for block ciphers.
Performance
LEA has very good performance in a general-purpose software environment.
In particular, it is possible to encrypt at a rate of about 1.5 to 2 times on average, compared to AES, the most widely used block cipher in various software environments.
The tables below compare the performance of LEA and AES using FELICS (Fair Evaluation of Lightweight Cryptographic Systems),
a benchmarking framework for evaluation of software implementations of lightweight cryptographic primitives.
Test vectors
Test vectors for LEA for each key length are as follows.
All values are expressed in hexadecimal form.
* LEA-128
** Key:
0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0
** Plaintext:
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
** Ciphertext:
9f c8 4e 35 28 c6 c6 18 55 32 c7 a7 04 64 8b fd
* LEA-192
** Key:
0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0 f0 e1 d2 c3 b4 a5 96 87
** Plaintext:
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
** Ciphertext:
6f b9 5e 32 5a ad 1b 87 8c dc f5 35 76 74 c6 f2
* LEA-256
** Key:
0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0 f0 e1 d2 c3 b4 a5 96 87 78 69 5a 4b 3c 2d 1e 0f
** Plaintext:
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
** Ciphertext:
d6 51 af f6 47 b1 89 c1 3a 89 00 ca 27 f9 e1 97
Implementations
LEA is free for any use: public or private, commercial or non-commercial.
The source code for distribution of LEA implemented in
C,
Java, and
Python can be downloaded from KISA's website.
In addition, LEA is contained in Crypto++ library, a free
C++ class library of cryptographic schemes.
KCMVP
LEA is one of the cryptographic algorithms approved by the Korean Cryptographic Module Validation Program (KCMVP).
Standardization
LEA is included in the following standards.
* KS X 3246, 128-bit block cipher LEA (in Korean)
* ISO/IEC 29192-2:2019, ''Information security - Lightweight cryptography - Part 2: Block ciphers''
References
{{cryptography navbox, block
Block ciphers