표준문서 : 한국정보통신기술협회(TTA) 표준문서.
1 개요
Lightweight Encryption Algorithm의 준말인 LEA는 국가보안기술연구소에서 개발한 128비트의 데이터 블록을 암호화하는 알고리즘으로, ARX[1]형태로 설계한 GFN TYPE-III 알고리즘이다. SBOX의 사용을 피하고, ARX형태로 구현한 탓에 경량화 구현이 가능해졌으며, AES의 연산속도보다 훨씬 빠르며[2] 기존 경량화암호인 HIGHT보다 더 높은 수준의 안전성을 추구하였다.
현재 KISA에서 오픈소스로 배포중이다. [1]
2 알고리즘
width=100% |
LEA 알고리즘의 전체적인 동작 과정 |
Copyrightⓒ Telecommunications Technology Association 2013. All Rights Reserved. |
LEA는 평문 128비트에 대해 키 128, 192, 256비트를 암호화하며[3] 이때의 각각의 라운드 수는 24, 28, 32라운드이다.
암호화 과정은 다음과 같이 수행된다.
width=100% |
LEA 알고리즘의 암호화 |
Copyrightⓒ Telecommunications Technology Association 2013. All Rights Reserved. |
각 라운드 함수의 연산과정에서, 입력값은 4개의 32비트 내부상태변수로 구성된 128비트 입력값과 192비트의 라운드키이며 출력값은 128비트의 내부상태변수이다.
연산에서 키는 XOR 과정으로 처리되며, 각 블록비트는 화살표 방향으로 내려오며 Addition 과정[4] 과 Rotation 과정을 거치게 된다. 여기서 ROR은 오른쪽 비트회전을 의미하며, ROL은 왼쪽 비트회전을 의미한다. 각각의 비트회전에 표시된 숫자는 그 숫자만큼 비트가 Rotation함을 의미한다.
모든 연산이 끝난 이후 각 블록이 왼쪽으로 이동하며, 가장 앞자리의 블록 변수는 최하단으로 이동하는 것으로 암호화 라운드함수의 연산이 종료된다.
width=100% |
LEA 알고리즘의 복호화 |
Copyrightⓒ Telecommunications Technology Association 2013. All Rights Reserved. |
복호화는 다음과 같은 과정으로 연산되며, 이때의 연산식은 암호화와 동일하다. 단, 암호화에서는 Addition을 사용하였으므로 복호화에서는 Subtraction을 사용한다.[5]
3 암호모듈 검증제도 검증필 목록
2015년 6월에 암호모듈 검증제도 검증 대상 알고리즘에 포함되었다. 다음은 LEA 알고리즘을 포함하는 검증필 목록이다. 2016년 3월 8일 기준으로 LEA 검증필 대상은 단 한 건밖에 없다[6]. 단 검증 대상에 등재되기 전에 비검증 대상으로 검증필을 획득한 암호모듈도 있어 재검증 진행 중인 것도 있을 것이다[7].
- 라온시큐어(주) - Key# Crypto v1.3 S/W(라이브러리)
4 관련 자료
LEA: A 128-Bit Block Cipher for Fast Encryption on Common Processors - Springer
OpenSSL 상에서 LEA 설계 및 구현 - 한국통신학회- ↑ Addition, Rotation, XOR 연산만으로 이루어진 것을 의미한다.
- ↑ ARX 암호알고리즘이니 당연히 속도가 빠르다고 생각할지도 모르겠지만, 수학적, 실험적 안전성을 기반으로 암호 알고리즘을 구현한데다 AES보다 2배 이상 속도가 빠르게 알고리즘을 설계하는것은 정말 어려운 일이다.
- ↑ 각각은 LEA-128, LEA-192, LEA-256으로 부른다.
- ↑ 이때, 무작정 더해나가면 주어진 자료형보다 그 크기가 커지므로 [math]mod\ 2^{32}[/math]로 연산을 정의한다
- ↑ 이 역시 addition과 마찬가지로 [math]mod\ 2^{32}[/math]로 연산을 정의한다
- ↑ 2015.06~2016.02 동안 10건의 암호모듈이 검증필을 받았다.
- ↑ 2013.07.30 (주)드림시큐리티의 MagicCrypto V2.0.2