LEA LEA 암호화 라운드 함수
설계자 홍득조, 이정근, 김동찬, 권대성, 유권호, 이동건 최초 출판일 2013 인증 대한민국 국가 표준(KS X 3246) ISO/IEC 국제 표준(ISO/IEC 29192-2:2019) 키 크기 128/192/256 비트 블록 크기 128 비트 구조 ARX(Addition, Rotation, eXclusive-or) 구조 라운드 수 24/28/32
LEA (Lightweight Encryption Algorithm, 리아)는 빅데이터, 클라우드 등 고속 환경 뿐만 아니라 IoT기기, 모바일기기 등 경량환경에서도 기밀성을 제공하기 위해 2013년에 대한민국이 개발한 128비트 대칭 키 블록 암호 알고리즘으로, 세 종류의 키 길이(128/192/256비트)를 지원한다.[ 1]
LEA는 범용 컴퓨팅 환경에서 매우 우수한 성능을 보유하고 있다.
특히, 다양한 소프트웨어 환경에서 가장 널리 사용되는 블록 암호인 AES 대비 평균적으로 약 1.5배에서 2배의 속도로 암호화가 가능하다.
LEA는 대한민국 국가 표준(KS X 3246)으로 제정된 암호 알고리즘으로 대한민국 암호모듈 검증제도 검증대상 알고리즘 목록에 포함되어 있다.
또한, LEA는 2019년 ISO/IEC의 경량 블록 암호 분야 표준(ISO/IEC 29192-2:2019)으로 제정되었다.
알고리즘
LEA는 ARX 구조로 이루어진 블록 암호이다.
블록 길이는 128비트로 고정되어 있으며, 128/192/256비트의 키 길이를 지원한다.
LEA는 동일한 라운드 함수를 반복하여 암호화를 하는데, 라운드 수는 키 길이에 따라 24/28/32이다.
암호화
128비트 평문 블록을
P
=
P
[
0
]
‖
P
[
1
]
‖
P
[
2
]
‖
P
[
3
]
{\displaystyle P=P[0]\|P[1]\|P[2]\|P[3]}
, 128비트 암호문 블록을
C
=
C
[
0
]
‖
C
[
1
]
‖
C
[
2
]
‖
C
[
3
]
{\displaystyle C=C[0]\|C[1]\|C[2]\|C[3]}
라 한다.
이때,
P
[
i
]
{\displaystyle P[i]}
와
C
[
i
]
{\displaystyle C[i]}
(
0
≤
i
<
4
{\displaystyle 0\leq i<4}
)는 32비트 블록이다.
그리고
i
{\displaystyle i}
(
0
≤
i
<
N
r
{\displaystyle 0\leq i<Nr}
)번째 192비트 라운드 키를
K
i
=
K
i
[
0
]
‖
K
i
[
1
]
‖
K
i
[
2
]
‖
K
i
[
3
]
‖
K
i
[
4
]
‖
K
i
[
5
]
{\displaystyle K_{i}=K_{i}[0]\|K_{i}[1]\|K_{i}[2]\|K_{i}[3]\|K_{i}[4]\|K_{i}[5]}
라 한다.
이때,
N
r
{\displaystyle Nr}
은 키 길이에 따른 라운드 수이고,
K
i
[
j
]
{\displaystyle K_{i}[j]}
(
0
≤
j
<
6
{\displaystyle 0\leq j<6}
)는 32비트 블록이다.
암호화 과정은 다음과 같다.
X
0
[
0
]
‖
X
0
[
1
]
‖
X
0
[
2
]
‖
X
0
[
3
]
←
P
[
0
]
‖
P
[
1
]
‖
P
[
2
]
‖
P
[
3
]
{\displaystyle X_{0}[0]\|X_{0}[1]\|X_{0}[2]\|X_{0}[3]\leftarrow P[0]\|P[1]\|P[2]\|P[3]}
for
i
=
0
{\displaystyle i=0}
to
N
r
−
1
{\displaystyle Nr-1}
X
i
+
1
[
0
]
←
(
(
X
i
[
0
]
⊕
K
i
[
0
]
)
⊞
(
X
i
[
1
]
⊕
K
i
[
1
]
)
)
⋘
9
{\displaystyle X_{i+1}[0]\leftarrow \left(\left(X_{i}[0]\oplus K_{i}[0]\right)\boxplus \left(X_{i}[1]\oplus K_{i}[1]\right)\right)\lll 9}
X
i
+
1
[
1
]
←
(
(
X
i
[
1
]
⊕
K
i
[
2
]
)
⊞
(
X
i
[
2
]
⊕
K
i
[
3
]
)
)
⋙
5
{\displaystyle X_{i+1}[1]\leftarrow \left(\left(X_{i}[1]\oplus K_{i}[2]\right)\boxplus \left(X_{i}[2]\oplus K_{i}[3]\right)\right)\ggg 5}
X
i
+
1
[
2
]
←
(
(
X
i
[
2
]
⊕
K
i
[
4
]
)
⊞
(
X
i
[
3
]
⊕
K
i
[
5
]
)
)
⋙
3
{\displaystyle X_{i+1}[2]\leftarrow \left(\left(X_{i}[2]\oplus K_{i}[4]\right)\boxplus \left(X_{i}[3]\oplus K_{i}[5]\right)\right)\ggg 3}
X
i
+
1
[
3
]
←
X
i
[
0
]
{\displaystyle X_{i+1}[3]\leftarrow X_{i}[0]}
C
[
0
]
‖
C
[
1
]
‖
C
[
2
]
‖
C
[
3
]
←
X
N
r
[
0
]
‖
X
N
r
[
1
]
‖
X
N
r
[
2
]
‖
X
N
r
[
3
]
{\displaystyle C[0]\|C[1]\|C[2]\|C[3]\leftarrow X_{Nr}[0]\|X_{Nr}[1]\|X_{Nr}[2]\|X_{Nr}[3]}
복호화
복호화 과정은 다음과 같다.
X
N
r
[
0
]
‖
X
N
r
[
1
]
‖
X
N
r
[
2
]
‖
X
N
r
[
3
]
←
C
[
0
]
‖
C
[
1
]
‖
C
[
2
]
‖
C
[
3
]
{\displaystyle X_{Nr}[0]\|X_{Nr}[1]\|X_{Nr}[2]\|X_{Nr}[3]\leftarrow C[0]\|C[1]\|C[2]\|C[3]}
for
i
=
(
N
r
−
1
)
{\displaystyle i=(Nr-1)}
down to
0
{\displaystyle 0}
X
i
[
0
]
←
X
i
+
1
[
3
]
{\displaystyle X_{i}[0]\leftarrow X_{i+1}[3]}
X
i
[
1
]
←
(
(
X
i
+
1
[
0
]
⋙
9
)
⊟
(
X
i
[
0
]
⊕
K
i
[
0
]
)
)
⊕
K
i
[
1
]
{\displaystyle X_{i}[1]\leftarrow \left(\left(X_{i+1}[0]\ggg 9\right)\boxminus \left(X_{i}[0]\oplus K_{i}[0]\right)\right)\oplus K_{i}[1]}
X
i
[
2
]
←
(
(
X
i
+
1
[
1
]
⋘
5
)
⊟
(
X
i
[
1
]
⊕
K
i
[
2
]
)
)
⊕
K
i
[
3
]
{\displaystyle X_{i}[2]\leftarrow \left(\left(X_{i+1}[1]\lll 5\right)\boxminus \left(X_{i}[1]\oplus K_{i}[2]\right)\right)\oplus K_{i}[3]}
X
i
[
3
]
←
(
(
X
i
+
1
[
2
]
⋘
3
)
⊟
(
X
i
[
2
]
⊕
K
i
[
4
]
)
)
⊕
K
i
[
5
]
{\displaystyle X_{i}[3]\leftarrow \left(\left(X_{i+1}[2]\lll 3\right)\boxminus \left(X_{i}[2]\oplus K_{i}[4]\right)\right)\oplus K_{i}[5]}
P
[
0
]
‖
P
[
1
]
‖
P
[
2
]
‖
P
[
3
]
←
X
0
[
0
]
‖
X
0
[
1
]
‖
X
0
[
2
]
‖
X
0
[
3
]
{\displaystyle P[0]\|P[1]\|P[2]\|P[3]\leftarrow X_{0}[0]\|X_{0}[1]\|X_{0}[2]\|X_{0}[3]}
키 스케줄
LEA의 키 스케줄은 128/192/256비트 키를 입력으로 받아 암/복호화에 사용되는
N
r
{\displaystyle Nr}
개의 192비트 라운드 키
K
i
{\displaystyle K_{i}
(
0
≤
i
<
N
r
{\displaystyle 0\leq i<Nr}
)를 출력한다.
128비트 키 스케줄
128비트 키를
K
=
K
[
0
]
‖
K
[
1
]
‖
K
[
2
]
‖
K
[
3
]
{\displaystyle K=K[0]\|K[1]\|K[2]\|K[3]}
라 한다.
이때,
K
[
i
]
{\displaystyle K[i]}
(
0
≤
i
<
4
{\displaystyle 0\leq i<4}
)는 32비트 블록이다.
LEA의 128비트 키 스케줄은 128비트 키
K
{\displaystyle K}
와 네 개의 32비트 상수
δ
[
i
]
{\displaystyle \delta [i]}
(
0
≤
i
<
4
{\displaystyle 0\leq i<4}
)를 입력으로 받아 24개의 192비트 라운드 키
K
i
{\displaystyle K_{i}
(
0
≤
i
<
24
{\displaystyle 0\leq i<24}
)를 출력한다.
128비트 키 스케줄은 다음과 같다.
T
[
0
]
‖
T
[
1
]
‖
T
[
2
]
‖
T
[
3
]
←
K
[
0
]
‖
K
[
1
]
‖
K
[
2
]
‖
K
[
3
]
{\displaystyle T[0]\|T[1]\|T[2]\|T[3]\leftarrow K[0]\|K[1]\|K[2]\|K[3]}
for
i
=
0
{\displaystyle i=0}
to
23
{\displaystyle 23}
T
[
0
]
←
(
T
[
0
]
⊞
(
δ
[
i
mod
4
]
⋘
i
)
)
⋘
1
{\displaystyle T[0]\leftarrow \left(T[0]\boxplus \left(\delta [i\mod 4]\lll i\right)\right)\lll 1}
T
[
1
]
←
(
T
[
1
]
⊞
(
δ
[
i
mod
4
]
⋘
(
i
+
1
)
)
)
⋘
3
{\displaystyle T[1]\leftarrow \left(T[1]\boxplus \left(\delta [i\mod 4]\lll \left(i+1\right)\right)\right)\lll 3}
T
[
2
]
←
(
T
[
2
]
⊞
(
δ
[
i
mod
4
]
⋘
(
i
+
2
)
)
)
⋘
6
{\displaystyle T[2]\leftarrow \left(T[2]\boxplus \left(\delta [i\mod 4]\lll \left(i+2\right)\right)\right)\lll 6}
T
[
3
]
←
(
T
[
3
]
⊞
(
δ
[
i
mod
4
]
⋘
(
i
+
3
)
)
)
⋘
11
{\displaystyle T[3]\leftarrow \left(T[3]\boxplus \left(\delta [i\mod 4]\lll \left(i+3\right)\right)\right)\lll 11}
K
i
←
T
[
0
]
‖
T
[
1
]
‖
T
[
2
]
‖
T
[
1
]
‖
T
[
3
]
‖
T
[
1
]
{\displaystyle K_{i}\leftarrow T[0]\|T[1]\|T[2]\|T[1]\|T[3]\|T[1]}
192비트 키 스케줄
192비트 키를
K
=
K
[
0
]
‖
K
[
1
]
‖
K
[
2
]
‖
K
[
3
]
‖
K
[
4
]
‖
K
[
5
]
{\displaystyle K=K[0]\|K[1]\|K[2]\|K[3]\|K[4]\|K[5]}
라 한다.
이때,
K
[
i
]
{\displaystyle K[i]}
(
0
≤
i
<
6
{\displaystyle 0\leq i<6}
)는 32비트 블록이다.
LEA의 192비트 키 스케줄은 192비트 키
K
{\displaystyle K}
와 여섯 개의 32비트 상수
δ
[
i
]
{\displaystyle \delta [i]}
(
0
≤
i
<
6
{\displaystyle 0\leq i<6}
)를 입력으로 받아 28개의 192비트 라운드 키
K
i
{\displaystyle K_{i}
(
0
≤
i
<
28
{\displaystyle 0\leq i<28}
)를 출력한다.
192비트 키 스케줄은 다음과 같다.
T
[
0
]
‖
T
[
1
]
‖
T
[
2
]
‖
T
[
3
]
‖
T
[
4
]
‖
T
[
5
]
←
K
[
0
]
‖
K
[
1
]
‖
K
[
2
]
‖
K
[
3
]
‖
K
[
4
]
‖
K
[
5
]
{\displaystyle T[0]\|T[1]\|T[2]\|T[3]\|T[4]\|T[5]\leftarrow K[0]\|K[1]\|K[2]\|K[3]\|K[4]\|K[5]}
for
i
=
0
{\displaystyle i=0}
to
27
{\displaystyle 27}
T
[
0
]
←
(
T
[
0
]
⊞
(
δ
[
i
mod
6
]
⋘
i
)
)
⋘
1
{\displaystyle T[0]\leftarrow \left(T[0]\boxplus \left(\delta [i\mod 6]\lll i\right)\right)\lll 1}
T
[
1
]
←
(
T
[
1
]
⊞
(
δ
[
i
mod
6
]
⋘
(
i
+
1
)
)
)
⋘
3
{\displaystyle T[1]\leftarrow \left(T[1]\boxplus \left(\delta [i\mod 6]\lll \left(i+1\right)\right)\right)\lll 3}
T
[
2
]
←
(
T
[
2
]
⊞
(
δ
[
i
mod
6
]
⋘
(
i
+
2
)
)
)
⋘
6
{\displaystyle T[2]\leftarrow \left(T[2]\boxplus \left(\delta [i\mod 6]\lll \left(i+2\right)\right)\right)\lll 6}
T
[
3
]
←
(
T
[
3
]
⊞
(
δ
[
i
mod
6
]
⋘
(
i
+
3
)
)
)
⋘
11
{\displaystyle T[3]\leftarrow \left(T[3]\boxplus \left(\delta [i\mod 6]\lll \left(i+3\right)\right)\right)\lll 11}
T
[
4
]
←
(
T
[
4
]
⊞
(
δ
[
i
mod
6
]
⋘
(
i
+
4
)
)
)
⋘
13
{\displaystyle T[4]\leftarrow \left(T[4]\boxplus \left(\delta [i\mod 6]\lll \left(i+4\right)\right)\right)\lll 13}
T
[
5
]
←
(
T
[
5
]
⊞
(
δ
[
i
mod
6
]
⋘
(
i
+
5
)
)
)
⋘
17
{\displaystyle T[5]\leftarrow \left(T[5]\boxplus \left(\delta [i\mod 6]\lll \left(i+5\right)\right)\right)\lll 17}
K
i
←
T
[
0
]
‖
T
[
1
]
‖
T
[
2
]
‖
T
[
3
]
‖
T
[
4
]
‖
T
[
5
]
{\displaystyle K_{i}\leftarrow T[0]\|T[1]\|T[2]\|T[3]\|T[4]\|T[5]}
256비트 키 스케줄
256비트 키를
K
=
K
[
0
]
‖
K
[
1
]
‖
K
[
2
]
‖
K
[
3
]
‖
K
[
4
]
‖
K
[
5
]
‖
K
[
6
]
‖
K
[
7
]
{\displaystyle K=K[0]\|K[1]\|K[2]\|K[3]\|K[4]\|K[5]\|K[6]\|K[7]}
라 한다.
이때,
K
[
i
]
{\displaystyle K[i]}
(
0
≤
i
<
8
{\displaystyle 0\leq i<8}
)는 32비트 블록이다.
LEA의 256비트 키 스케줄은 256비트 키
K
{\displaystyle K}
와 여덟 개의 32비트 상수
δ
[
i
]
{\displaystyle \delta [i]}
(
0
≤
i
<
8
{\displaystyle 0\leq i<8}
)를 입력으로 받아 32개의 192비트 라운드 키
K
i
{\displaystyle K_{i}
(
0
≤
i
<
32
{\displaystyle 0\leq i<32}
)를 출력한다.
256비트 키 스케줄은 다음과 같다.
T
[
0
]
‖
T
[
1
]
‖
T
[
2
]
‖
T
[
3
]
‖
T
[
4
]
‖
T
[
5
]
‖
T
[
6
]
‖
T
[
7
]
←
K
[
0
]
‖
K
[
1
]
‖
K
[
2
]
‖
K
[
3
]
‖
K
[
4
]
‖
K
[
5
]
‖
K
[
6
]
‖
K
[
7
]
{\displaystyle T[0]\|T[1]\|T[2]\|T[3]\|T[4]\|T[5]\|T[6]\|T[7]\leftarrow K[0]\|K[1]\|K[2]\|K[3]\|K[4]\|K[5]\|K[6]\|K[7]}
for
i
=
0
{\displaystyle i=0}
to
31
{\displaystyle 31}
T
[
6
i
mod
8
]
←
(
T
[
6
i
mod
8
]
⊞
(
δ
[
i
mod
8
]
⋘
i
)
)
⋘
1
{\displaystyle T[6i\mod 8]\leftarrow \left(T[6i\mod 8]\boxplus \left(\delta [i\mod 8]\lll i\right)\right)\lll 1}
T
[
6
i
+
1
mod
8
]
←
(
T
[
6
i
+
1
mod
8
]
⊞
(
δ
[
i
mod
8
]
⋘
(
i
+
1
)
)
)
⋘
3
{\displaystyle T[6i+1\mod 8]\leftarrow \left(T[6i+1\mod 8]\boxplus \left(\delta [i\mod 8]\lll \left(i+1\right)\right)\right)\lll 3}
T
[
6
i
+
2
mod
8
]
←
(
T
[
6
i
+
2
mod
8
]
⊞
(
δ
[
i
mod
8
]
⋘
(
i
+
2
)
)
)
⋘
6
{\displaystyle T[6i+2\mod 8]\leftarrow \left(T[6i+2\mod 8]\boxplus \left(\delta [i\mod 8]\lll \left(i+2\right)\right)\right)\lll 6}
T
[
6
i
+
3
mod
8
]
←
(
T
[
6
i
+
3
mod
8
]
⊞
(
δ
[
i
mod
8
]
⋘
(
i
+
3
)
)
)
⋘
11
{\displaystyle T[6i+3\mod 8]\leftarrow \left(T[6i+3\mod 8]\boxplus \left(\delta [i\mod 8]\lll \left(i+3\right)\right)\right)\lll 11}
T
[
6
i
+
4
mod
8
]
←
(
T
[
6
i
+
4
mod
8
]
⊞
(
δ
[
i
mod
8
]
⋘
(
i
+
4
)
)
)
⋘
13
{\displaystyle T[6i+4\mod 8]\leftarrow \left(T[6i+4\mod 8]\boxplus \left(\delta [i\mod 8]\lll \left(i+4\right)\right)\right)\lll 13}
T
[
6
i
+
5
mod
8
]
←
(
T
[
6
i
+
5
mod
8
]
⊞
(
δ
[
i
mod
8
]
⋘
(
i
+
5
)
)
)
⋘
17
{\displaystyle T[6i+5\mod 8]\leftarrow \left(T[6i+5\mod 8]\boxplus \left(\delta [i\mod 8]\lll \left(i+5\right)\right)\right)\lll 17}
K
i
←
T
[
6
i
mod
8
]
‖
T
[
6
i
+
1
mod
8
]
‖
T
[
6
i
+
2
mod
8
]
‖
T
[
6
i
+
3
mod
8
]
‖
T
[
6
i
+
4
mod
8
]
‖
T
[
6
i
+
5
mod
8
]
{\displaystyle K_{i}\leftarrow T[6i\mod 8]\|T[6i+1\mod 8]\|T[6i+2\mod 8]\|T[6i+3\mod 8]\|T[6i+4\mod 8]\|T[6i+5\mod 8]}
키 스케줄 상수
키 스케줄에서 사용되는 여덟 개의 상수
δ
[
i
]
{\displaystyle \delta [i]}
(
0
≤
i
<
8
{\displaystyle 0\leq i<8}
)는 다음과 같다.
키 스케줄 상수
i
{\displaystyle i}
0
1
2
3
4
5
6
7
δ
[
i
]
{\displaystyle \delta [i]}
0xc3efe9db
0x44626b02
0x79e27c8a
0x78df30ec
0x715ea49e
0xc785da0a
0xe04ef22a
0xe5c40957
안전성
2019년까지 전체 라운드 LEA에 대한 공격은 알려진 것이 없고 부분 라운드에 대한 공격만 알려져 있다.
알려진 공격 중에는 boomerang 공격과 differential linear 공격이 가장 효율적인 공격이다.
가장 효율적인 공격에 대해서도 LEA는 모든 키 길이에 대해 37% 이상의 안전성 마진을 가진다.
Security of LEA-128 (24 rounds)
Attack type
Attacked rounds
Differential[ 2]
14
Truncated differential[ 2]
14
Linear[ 1]
13
Zero correlation[ 1]
10
Boomerang[ 1]
15
Impossible differential[ 1]
12
Integral[ 1]
9
Differential linear[ 1]
15
Related-key differential[ 1]
13
Security margins of LEA
Block ciphers
Rounds (Attacked / Total)
Security margins
LEA-128
15 / 24
37.50%
LEA-192
16 / 28
42.85%
LEA-256
18 / 32
43.75%
구현 성능
LEA는 소프트웨어 환경에서 매우 효율적이다.
LEA는 다양한 플랫폼에서 현재 가장 널리 사용되는 블록 암호 중 하나인 AES 대비 평균적으로 약 1.5배에서 2배의 속도로 암호화가 가능하다.
아래 표는 경량 암호 성능 측정 프레임워크 FELICS(Fair Evaluation of Lightweight Cryptographic Systems)[ 3]
에서 LEA와 AES의 성능을 비교한 결과이다.
FELICS scenario 1 – Enc. + Dec. + KeySetup / 128-byte CBC-Encryption[ 4] (Code: bytes, RAM: bytes, Time: cycles)
Platform
LEA-128
LEA-192
LEA-256
AES-128
AVR
Code
1,684
2,010
2,150
3,010
RAM
631
943
1,055
408
Time
61,020
80,954
92,194
58,248
MSP
Code
1,130
1,384
1,468
2,684
RAM
626
942
1,046
408
Time
47,339
56,540
64,001
86,506
ARM
Code
472
536
674
3,050
RAM
684
968
1,080
452
Time
17,417
20,640
24,293
83,868
FELICS scenario 2 – Enc. / 128-bit CTR-Encryption[ 4] (Code: bytes, RAM: bytes, Time: cycles)
Platform
LEA-128
LEA-192
LEA-256
AES-128
AVR
Code
906
1,210
1,306
1,246
RAM
80
80
80
81
Time
4,023
4,630
5,214
3,408
MSP
Code
722
1,014
1,110
1,170
RAM
78
78
78
80
Time
2,814
3,242
3,622
4,497
ARM
Code
628
916
1,012
1,348
RAM
92
100
100
124
Time
906
1,108
1,210
4,044
테스트 벡터
LEA의 암호화 테스트 벡터는 다음과 같다.[ 5]
모든 값은 16진수로 표현되어 있다.
LEA-128
키: 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0
평문: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
암호문: 9f c8 4e 35 28 c6 c6 18 55 32 c7 a7 04 64 8b fd
LEA-192
키: 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0 f0 e1 d2 c3 b4 a5 96 87
평문: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
암호문: 6f b9 5e 32 5a ad 1b 87 8c dc f5 35 76 74 c6 f2
LEA-256
키: 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
평문: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
암호문: d6 51 af f6 47 b1 89 c1 3a 89 00 ca 27 f9 e1 97
구현
C, Java, Python으로 구현된 LEA의 배포용 소스코드는 KISA 암호이용활성화 웹페이지에서 다운받을 수 있다.[ 6]
또한, LEA는 C++ 기반 암복호화 라이브러리 Crypto++에 포함되어 있다.[ 7]
암호모듈 검증제도
LEA는 2015년 대한민국 암호모듈 검증제도 검증대상 암호알고리즘 목록에 포함되었다.[ 8]
표준
LEA는 아래 표준으로 제정되어 있다.
KS X 3246, 128비트 블록 암호 LEA[ 5]
ISO/IEC 29192-2:2019, Information security - Lightweight cryptography - Part 2: Block ciphers [ 9]
각주
↑ 가 나 다 라 마 바 사 아 Hong, Deukjo; Lee, Jung-Keun; Kim, Dong-Chan; Kwon, Daesung; Ryu, Kwon Ho; Lee, Dong-Geon (2013). 〈LEA: A 128-bit Block Cipher for Fast Encryption on Common Processors〉. 《International Workshop on Information Security Applications - WISA 2013》. Lecture Notes in Computer Science 8267 . Springer/Heidelberg. 3–27쪽.
↑ 가 나 Song, Ling; Huang, Zhangjie; Yang, Qianqian (2016). 〈Automatic Differential Analysis of ARX Block Ciphers with Application to SPECK and LEA〉. 《Australasian Conference on Information Security and Privacy - ACISP 2016》. Lecture Notes in Computer Science 9723 . Springer/Heidelberg. 379–394쪽.
↑ Dinu, Daniel; Le Corre, Yann; Khovratovich, Dmitry; Perrin, Léo; Großschädl, Johann; Biryukov, Alex (2019). 〈Triathlon of lightweight block ciphers for the Internet of things〉. 《Journal of Cryptographic Engineering》 9(3) . Springer/Heidelberg. 283–302쪽.
↑ 가 나 “FELICS website” .
↑ 가 나 “KS X 3246, 128비트 블록 암호 LEA” .
↑ “LEA 소스코드” .
↑ “Crypto++ Library 8.2” . 2022년 5월 22일에 원본 문서 에서 보존된 문서. 2020년 6월 18일에 확인함 .
↑ “암호모듈검증” .
↑ “ISO/IEC 29192-2:2019, Information security - Lightweight cryptography - Part 2: Block ciphers ” .
공통 알고리즘 저사용 알고리즘 기타 알고리즘
3-Way
Akelarre
아누비스
CAST-256
CMEA
CS-Cipher
DEAL
DES-X
FEAL
FOX
FROG
G-DES
ICE
이라크 블록 암호
KASUMI
KHAZAD
Khufu and Khafre
LOKI89/91
LOKI97
루시퍼
MacGuffin
Madryga
MAGENTA
MARS
MISTY1
MMB
NewDES
Noekeon
RC2
REDOC
레드 파이크
S-1
SAFER
SHACAL
SHARK
스퀘어
설계 공격 (암호해독 ) 표준화 활용