의견.png

경량암호

위키원
7095sj (토론 | 기여)님의 2020년 8월 26일 (수) 15:35 판
이동: 둘러보기, 검색

경량암호(Lightweight Cryptography)란 현재 연구 개발 및 표준화가 가장 활발한 암호기술 분야 중 하나로, 다양한 리소스에 제약이 있는 장치를 위한 암호화 하위 영역이다. 가용 자원이 제한된 다양한 환경에서 효율적으로 구현되고 동작할 수 있는 암호 알고리즘을 의미한다. HIGHT, LEA, CLEFIA, DESXL, KASUMI, PRESENT 등이 경량암호 알고리즘에 속한다.

개요

사회의 전반적인 생활 영역에 사물인터넷 기기가 많아지자 이를 안전하게 지킬 보안이 중요한 문제가 되었다. HP의 2015년 보고서에 의하면 10개의 사물인터넷 기기중 7개가 인터넷이나 LAN과 통신할 때 암호화를 하지 않았다는 결과가 나왔다. 이러한 스마트 기기의 보안을 따로 중점적으로 보는 이유는 사물인터넷의 특성에 따른 하드웨어의 제한된 면적과 전력 소비량, 메모리 크기 등의 제약을 받기 때문이다. 이런 제한된 환경에서 필요한 것이 바로 경량 암호 기술이다. 경량 암호 기술은 현재 연구 개발 및 표준화가 가장 활발한 암호기술 분야 중 하나로, 경량 암호기술 외에는 미국 국립표준기술연구소가 공모 사업을 진행하고 있는 양자컴퓨팅에 안전한 공개키 암호가 있고, 도청에 대해 물리적으로 완벽한 안전성을 제공하는 양자키분배 기술도 있다.

기존에는 AES와 DES와 같은 암호화 방식이 사용되고 있다. 스마트 기기 또한 높은 보안을 보장하는 AES를 적용해도 문제는 크게 없지만, 경량 알고리즘을 사용할 때와 비교하면 제한된 환경으로 인하여 속도가 감소하거나 기기에 과부하 현상이 일어날 수 있어 낮은 성능을 보여준다. 따라서 다양한 경량 암호 알고리즘의 종류나 특징을 분석하여 사물인터넷 환경에 보다 적합한 알고리즘을 적용해야만 한다.

경량 블록 암호 알고리즘을 형태에 따라 분류하면 크게 SPN 형태와 파이스텔(Feistel) 형태로 나뉜다. SPN 형태는 S-box와 P-box를 사용하며, 병렬 연산이 가능하고 암호화와 복호화 모듈이 동일하지 않다는 특징을 가지고 있다. SPN 형태의 대표적인 예시가 바로 가장 널리 사용되는 AES이다. 파이스텔 형태는 ARX-Based라고도 하며, 모듈러 연산, XOR 연산을 사용한다. 파이스텔 형태의 대표적인 예시가 DES인데, 보안에 취약해서 이 이상 많이 사용되지 않는 알고리즘이다.[1]

동향

경량 암호는 기존의 암호화 알고리즘 분야에서 최근 이슈가 되는 개념이다. 초연결 시대가 도래함에 따라 더 작은 기기에서, 더 많은 데이터를, 더 빠르게 암호화해야할 필요성이 대두되고 있으며, 이에 따라 ISO/IEC는 경량 암호를 하나의 분야로 보고 표준화를 진행하고 있다. 경량 암호 표준은 다양하게 나뉘는데, 가장 논의가 치열하면서 기술 집약적인 분야가 바로 블록암호이다. 일본의 프레젠트(PRESENT)와 일본의 소니에서 만든 클레피아(CLEFIA)를 예로 들 수 있는데, 실질적인 활용도는 높지 않은 편이다.

미국 국가 안보국은 2013년에 두 개의 경량 블록암호 SIMON/SPECK를 발표했다. 기존의 블록암호보다 우수한 경량성을 갖고 있고, 미국 국가 보안국이 처음으로 공개적으로 개발한 알고리즘이기도 하다. 미국 국가 안보국은 2016년에 ISO/IEC 암호기술 그룹에 제출했지만, 2013년 스노든의 폭로로 밝혀진 백도어의 여파가 강했다. 기존에는 미국이 제안한 암호들은 ISO/IEC의 표준으로 비교적 쉽게 채택됐다. 그러나 미국 국가 보안국이 제안한 난수발생기 표준에 백도어 삽입 의혹이 발표된 후로 상황은 반전됐다. 표준화 회의에 참석한 전문가들은 설계 부분의 투명성에 대하여 계속해서 문제를 제기했고, 미국은 이에 응하여 해명을 했다. 그러나 2018년 봄 중국 회의에서 표준화 추진 취소 절차가 진행되었으며, 결국 국가 단위 투표를 진행한 끝에 2018년 8월에 표준화 추진 취소가 최종적으로 확정되었다. 국내에서는 사물인터넷 환경에 적합한 암호화 기술을 확보하기 위하여 2014년에 개발한 고속경량 블록암호 LEA를 2016년에 경량 블록암호 표준으로 제안했다. LEA는 소프트웨어에서의 최적속도를 위하여 덧셈과 비트순환, XOR만으로 연산하는 매우 간단한 구조를 채택했다. 2015년에 룩셈부르크대학 개발경량암호 성능 측정 프레임워크를 활용한 구현경진대회에서 128비트 블록암호 부분의 1위를 차지하는 등 경량 소프트웨어 환경에서 우수한 성능이 검증되었으며, 현재 가장 널리 사용되는 국제표준 블록암호 AES와 비교하여 약 1.5배 이상의 속도를 제공한다. LEA와 SIMON/SPECK 모두 사물인터넷 환경에서 우수하고 유사한 구조를 갖고 있지만, LEA는 안전한 설계로 인해 안전성이 견고하며, AES 개발 기관이자 암호관련 연구 개발 선도하는 벨기에 루벤 대학 등 제삼자의 객관적인 안전성 평가를 갖고 있다. 한편, ISO/IEC 일반 블록암호 표준에는 우리나라의 블록암호인 SEED와 HIGHT도 있다. 그러나 SEED와 HIGHT는 국제표준 AES 대비 낮은 성능을 보여주고 있어서 암호제품의 국제 경쟁력 확보에는 한계가 있다.[2]

종류

국내

  • LEA
2013년 국가보안기술연구소에서 개발한 GFN 구조의 경량 블록 암호 알고리즘이다. 32비트 플랫폼에 최적화되어 있으며, 블록 사이즈는 128비트이고, 128/192/256 비트 키가 있다. 소프트웨어 구현 및 활용을 목적으로 설계된 알고리즘이다. 국제 표준에 등록된 PRESENT나 CLEFIA는소프트웨어보다 하드웨어를 구현하는 데 더 효율적이다. 반면에 LEA는 소프트웨어에서의 구현과 활용을 목적으로 설계되었다. 사물인터넷의 발전으로 소프트웨어 구현이 더 필요해질 수도 있다는 가능성을 고려한다면 어떤 경우에서는 LEA가 적절한 선택일 수 있다. LEA는 현재까지 알려진 모든 블록 알고리즘에 대한 공격에 안전하다. 룩셈부르크 대학교의 암호연구그룹에서 제작한 FELICS의 두 가지 측정 시나리오에서 128비트 키 블록암호들 중에서 각각 3위와 4위를 차지하여 128비트 블록 암호 중에서는 가장 뛰어난 성능을 보이는 알고리즘이다.
  • HIGHT
HIGHT는 국내에서 개발한 GFS 구조의 64비트 경량 블록 암호 알고리즘이다. RFID, USN 등과 같이 저전력, 경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 개발되었다. 초경량 블록 암호 알고리즘인 HIGHT은 128비트 마스터키, 64비트 평문으로부터 64비트 암호문을 출력한다. 또, 제한적 자원을 갖고 있는 환경 구현될 수 있도록 8비트 단위의 기본적인 산술 연산만으로 구성되어 있다. 따라서 SEED, AES 등 기타 알고리즘보다 비교적 간단한 알고리즘 구조로 설계되어 있다. HIGHT의 구조는 전체적으로 일반화된 파이스텔 변형 구조로 이루어져 있으며, 64비트 평문과 128비트 마스터키에서 생성된 8개의 8비트 화이트닝 키와 128개의 8비트 서브키를 입력으로 사용하여 총 32라운드를 거쳐서 64비트 암호문을 출력한다. 즉, HIGHT의 모든 연산은 8비트 프로세서에 최적화되어 있고, 8비트 소프트웨어를 구현할 때 AES-128보다 HIGHT의 성능이 더 뛰어나다. HIGHT의 라운드 키는 화이트닝 키와 LFSR을 사용하여 생성된 서브키들로만 이루어져 있다. 화이트닝 키는 마스터키의 순서를 바꿔서 사용하여 서브 키들은 마스터 키에 LFSR 값을 더해서 생성한다. 각 라운드는 64비트 파이스텔 변형구조로 이루어져 있고, 각각의 연산은 법 덧셈과 xor, F함수로 이루어져 간단하다. F한수도 기존의 암호 알고리즘에서 사용되는 복잡한 상태가 아니라 Shift와 xor로 이루어진 비교적 간단한 연산이다. 한편, HIGHT는 차분 오류 주입 공격과 부채널 공격 중 가장 강력한 차분 전력 분석이 제기되기도 했다.
하드웨어 구현과 관련한 설명은 다음과 같다. HIGHT는 AES나 SEED에서 사용하는 SBOX를 사용하지 않고, 전체적인 구조가 XOR, shift, 덧셈으로 이루어져 있기 때문에 면적을 줄이는데 있어서 다소 한계가 존재한다. 레지스터를 최대한 적게 쓰는 방법으로 구현되었고, 한 라운드의 구조가 비슷한 연산 4개를 포함하는 형태를 취하기 때문에, 한 라운드를 4클럭, 2클럭, 1클럭으로 나누어서 구현한다.

국외

  • PRESENT
PRESENT는 AES 기반의 경량 블록 암호 알고리즘이다. 블록 사이트는 64비트, 키 사이즈는 80바이트와 128비트 두 종류를 가지고 있어, 64비트의 평문과 80비트의 키를 사용한다. 전체 구조는 4비트의 S-BOX와 XOR 및 비트 시프트로 연산되며 32라운드로 구성되어 있다. 암호화 강도는 AES와 비교하면 암호화 등급이 조금 낮지만, 하드웨어 설계에서는 훨씬 좋은 성능을 갖고 있는 알고리즘이다. AES에 비해 2.5배 작은 하드웨어 설계가 가능하고, RFID, 스마트카드, USN 같은 시스템에 사용하기 위해서 면적과 소비전력을 개선하여 효율성을 높인 암호 알고리즘이다.
PRESENT는 차분 오류 공격이 제기된 바가 있다. 부채널 공격 기법에 해당하는 차분 오류 공격은 암호의 안정성 분석에서도 자주 사용되는 방식이다. 공격 방법은 다음과 같다. 공격자 이브는 총 31라운드 중에서 28라운드의 입력 레지스터에 2바이트 오류를 입력한다고 하자. 이를 통해 80비트 키의 경우에는 3개의 오류를 이용하여 평균 개의 후보 비밀키를 얻을 수 있다. 비밀키는 이러한 과정을 통해 복구될 수 있다.
하드웨어 구현할 때는 사용된 키의 비트수가 다른 알고리즘들에 비하여 적은 편이기 때문에 적은 수의 레지스터를 사용한다. 한 라운드동안 17개의 S-BOX를 병렬로 사용한 모듈과 17라운드동안 1개의 S-BOX를 순차적으로 사용한 모듈을 모두 구현한다. 파이스텔 구조가 아니므로 복호화를 하기위해서 각 함수의 역함수를 모두 구현한다.
  • CLEFIA
소니에서 개발한 AES와 유사항 형태의 블록암호 알고리즘이다. AES처럼 128, 192, 256비트의 세 가지 키를 사용할 수 있으며, 128비트의 평문을 암호화한다. 구조상으로는 파이스텔 형태를 취하고 있고, 키의 크기에 따라 라운드 수와 동장이 조금씩 변형되고, 18, 22, 26 라운드로 구성되어 있다. 기본적으로 128비트의 평문은 4개의 32비트 데이터블록으로 나뉘어 연산된다. 키 화이트닝 기법이 사용되었고, 데이터 처리와 키 스케줄링의 두 부분으로 나뉘었다. 내부 함수에는 두 종류의 S-Box가 사용되고, 데이터 처리부와 키 스케줄링에서 혼용된다. CLEFIA는 DRM 시스템에 적용하기 위해서 만들어진 알고리즘이기도 하다. 여기서 DRM 시스템이란 출판자, 작가와 같은 저작권 소유자가 배포한 하드웨어나 디지털자료가 이들이 허용하고 의도한 용도로만 제한적으로 사용될 수 있도록 만드는 모든 기술을 의미한다.
CLEFIA도 다중 불능 차분 공격이 제기되었다. 소니에서 공개했던 자체 평가에서는 선형 공격, 차분 공격, 불능 차분 공격, 연관키 공격 등이 있다. 차분 오류 공격을 이용하면 128비트 키의 경우 비밀키 전체를 복구하는데 평균적으로 18개의 오류 암호문으로 복구가 가능하다. 또한, 192비트 키와 256비트 키의 경우 평균 54개의 오류 암호문으로도 복구할 수 있다.
  • SIMON/SPECK
SIMON은 파이스텔 형태의 경량 블록 암호화 알고리즘이다. 미국 국가 안보국에서 제안한 알고리즘으로, 32/48/64/128 비트의 블록 사이즈가 있으며, 블록 사이즈 각각에 대해 64/72, 96/96, 128/96, 144/128, 192, 256의 키 사이즈가 있다. 라운드는 블록 사이즈 각각에 대해 32/36/42, 44/52, 54/68, 69, 72가 있다. XOR, AND 연산 등을 사용하며, 블록 크기가 다양하여 길이가 긴 데이터 암호화의 경우 상황에 맞춰서 효율적으로 선택할 수 있다.
SPECK도 미국 국가 안보국에서 제안한 경량 블록 암호화 알고리즘이며, ARX 형태이다. 32/48/64/96/128 비트의 블록 사이즈가 있고 블록 사이즈 각각에 대하여 64/72, 96/96, 128/96, 144/128, 192, 256의 키 사이즈가 있다. SPECK도 XOR 연산을 사용하며, 라운드는 블록 사이즈 각각에 대하여 22/22, 23/26, 27/28, 29/32, 33, 34가 있다.
미국 국가 안보국은 SIMON은 하드웨어 플랫폼, SPECK는 소프트웨어 플랫폼에 최적화되도록 개발했지만, 양 쪽 모두 두 영역에서 좋은 성능을 낸다. 미국 국가 안보국의 보고서에서 다른 알고리즘과 비교하고 다양한 하드웨어 상에서 성능 비교 분석을 한 결과이기 때문에 어느 정도 검증이 되어있다. 그러나 미국 국가 안복구의 보고서에서는 보안 능력과 관련한 내용은 없다.
다양한 블록과 키 길이 지원으로 여러 환경에서의 구현을 지원한다는 것이 큰 장점이지만, 48비트 블록의 보안 취약성과 ARX 구조 발전 가능성, 미국 국가 안보국을 향한 불신으로 인해 ISO/IEC 국제회의에서 표준화를 반대했다.
  • KASUMI
일본에서 개발한 암호 알고리즘이다. 일본의 MISTY 알고리즘에 기반을 두고 3GPP를 위해 개발되었다. 128비트 키를 사용해서 64비트 평문을 암호화한다. KASUMI 알고리즘은 구조상으로는 파이스텔 형태를 띄고 있고, 8라운드로 구성된다. FO 함수와 FL 함수는 XOR과 shift, SBOX로 이루어진 함수를 의미하는데, S-BOX는 XOR 게이트만으로 구성되어 있고, 7비트와 9비트의 두 가지를 사용한다. 128비트 키는 변형시키지 않으며 16비트씩 8개로 나누어서 라운드 별로 사용된다. 이는 복호화 과정에서 추가로 키를 스케줄링 할 필요가 없다는 장점이 있다.
  • XTEA
1994년에 개발된 TEA를 개선해서 만든 암호 알고리즘이다. 62비트의 평문과 128비트의 키를 사용한다. 저전력, 적은 에너지, 빠른 속도를 목적으로 개발되었기 때문에 XOR, SHIFT, 간단한 ADD 연산만으로 구성되어 있는 것이 특징이다. 파이스텔 구조의 32라운드를 진행하는 동안 키는 변형되지 않고 구간 별로 나눈 다음, 특정한 패턴에 의해서 사용된다.
  • mCRYPTON
기존의 CRYTON 알고리즘을 기반으로 하여 개발했지만, 대부분의 모듈은 새롭게 구성했다. 64비트의 평문과 64, 96, 128비트의 키를 사용할 수 있다. mCRYPTON은 파이스텔 형태의 구조로 총 12라운드로 구성된다. 암호화 할 때는 비선형 대치, 비트 치환, 행열 변환, 키 덧셈의 단계를 거친다. 이는 복호화 과정에서도 연산을 약간만 변형하면 그대로 계속해서 사용할 수 있는 구조로, 별도로 모듈을 추가할 필요가 없다는 장점이 있다.
  • SEA
SEA는 평문과 키, 프로세서의 종류에 따라 데이터 블록의 크기도 변화시킬 수 있는 암호 알고리즘을 말한다. SEA의 S는 Scalable의 약자이다. 소프트웨어로 구현하기 좋도록 이에 맞추어 개발되었고, 데이터와 키의 비트수에 따라 라운드나 워드의 크기가 달라지는 유연함이 특징이다. 평문과 키 모두 파이스텔 구조로 암호와 복호를 따로 구현할 필요가 없고, 내부에 있는 작은 규모의 로테이션 함수의 역만 추가하면 된다.[1][3]

각주

  1. 1.0 1.1 박채원, 〈[표준 경량 블록 암호 알고리즘들의 분석과 사물인터넷에 적용에 관한 조사]〉, 《시맨틱스칼라》
  2. 노동영, 권대성, 〈[차세대 표준암호기술 동향]〉, 《정보통신기획평가원》, 2019-09-25
  3. 한양대학교 산학협력단, 〈[경량 암호 알고리즘(HIGHT)의 하드웨어적 구현 방안 연구]〉, 《한국인터넷진흥원》, 2011-11

참고자료

  • NIST 공식홈페이지 Lightweight Cryptography - https://csrc.nist.gov/projects/lightweight-cryptography
  • 한국인터넷진흥원 공식 홈페이지 암오이용활성화 - https://seed.kisa.or.kr/kisa/index.do
  • 노동영, 권대성, 〈[차세대 표준암호기술 동향]〉, 《정보통신기획평가원》, 2019-09-25
  • 박채원, 〈[표준 경량 블록 암호 알고리즘들의 분석과 사물인터넷에 적용에 관한 조사]〉, 《시맨틱스칼라》
  • 한양대학교 산학협력단, 〈[경량 암호 알고리즘(HIGHT)의 하드웨어적 구현 방안 연구]〉, 《한국인터넷진흥원》, 2011-11

같이 보기


  의견.png 이 경량암호 문서는 암호 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.