경량암호 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
6번째 줄: 6번째 줄:
 
기존에는 [[AES]]과 [[DES]]과 같은 암호화 방식이 사용되고 있다. 스마트 기기 또한 높은 보안을 보장하는 AES를 적용해도 문제는 크게 없지만, 경량 알고리즘을 사용할 때와 비교하면 제한된 환경으로 인하여 속도가 감소하거나 기기에 과부하 현상이 일어날 수 있어 낮은 성능을 보여준다. 따라서 다양한 경량 암호 알고리즘의 종류나 특징을 분석하여 사물인터넷 환경에 더욱 적합한 알고리즘을 적용해야만 한다.  
 
기존에는 [[AES]]과 [[DES]]과 같은 암호화 방식이 사용되고 있다. 스마트 기기 또한 높은 보안을 보장하는 AES를 적용해도 문제는 크게 없지만, 경량 알고리즘을 사용할 때와 비교하면 제한된 환경으로 인하여 속도가 감소하거나 기기에 과부하 현상이 일어날 수 있어 낮은 성능을 보여준다. 따라서 다양한 경량 암호 알고리즘의 종류나 특징을 분석하여 사물인터넷 환경에 더욱 적합한 알고리즘을 적용해야만 한다.  
  
경량 블록 암호 알고리즘을 형태에 따라 분류하면 크게 [[SPN]] 형태와 [[파이스텔]](Feistel) 형태로 나뉜다. SPN 형태는 [[S-box]]와 P-box를 사용하며, 병렬 연산이 가능하고 암호화와 복호화 모듈이 동일하지 않다는 특징을 가지고 있다. SPN 형태의 대표적인 예시가 바로 가장 널리 사용되는 AES이다. 파이스텔 형태는 ARX-Based라고도 하며, 모듈러 연산, [[배타적 논리합]] 연산을 사용한다. 파이스텔 형태의 대표적인 예시가 DES인데, 보안에 취약해서 이 이상 많이 사용되지 않는 알고리즘이다.<ref name='박채원 알고리즘 분석'> 박채원, 〈[표준 경량 블록 암호 알고리즘들의 분석과 사물인터넷에 적용에 관한 조사]〉, 《시맨틱스칼라》 </ref>  
+
경량 블록 암호 알고리즘을 형태에 따라 분류하면 크게 [[SPN]] 형태와 [[파이스텔]](Feistel) 형태로 나뉜다. SPN 형태는 S-box와 P-box를 사용하며, 병렬 연산이 가능하고 암호화와 복호화 모듈이 동일하지 않다는 특징을 가지고 있다. SPN 형태의 대표적인 예시가 바로 가장 널리 사용되는 AES이다. 파이스텔 형태는 ARX-Based라고도 하며, 모듈러 연산, [[배타적 논리합]] 연산을 사용한다. 파이스텔 형태의 대표적인 예시가 DES인데, 보안에 취약해서 이 이상 많이 사용되지 않는 알고리즘이다.<ref name='박채원 알고리즘 분석'> 박채원, 〈[표준 경량 블록 암호 알고리즘들의 분석과 사물인터넷에 적용에 관한 조사]〉, 《시맨틱스칼라》 </ref>  
  
 
== 역사 ==
 
== 역사 ==
 
=== 과거 ===
 
=== 과거 ===
경량 대칭키 암호 알고리즘은 2001년 AES 표준화 이후로 본격적으로 연구되기 시작했다. 서버나 PC 등 대부분의 환경의 암호화를 AES가 맡게 되었지만, 경량 환경은 AES의 설계에서 고려된 것이 아니었기 때문이다. 또, 컴퓨터 시스템과 네트워크 기술의 발전은 곧 모든 장비의 소형화와 지능화라는 결과로 이어지기 때문에, 하드웨어나 소프트웨어의 최적화는 제품의 성능이나 기능 향상, 개발 비용의 최소화 등에 매우 중요한 역할을 맡고 있다. 암호학자들은 경량 암호 알고리즘을 가용 자원이 제한된 다양한 환경에서 효율적으로 구현하고 동작할 수 있는 암호 알고리즘이라고 정의한다. 이러한 경량 블록 암호 알고리즘의 초기는 설계 초점을 하드웨어 구현 면적의 최소화에 두었다. 체스 2006에서 발표된 경량 블록 암호 HIGHT는 하드웨어 구현 면적을 최소화하기 위해서  8비트 산술연산으로 라운드 함수를 구성했다. 다른 말로는 사용된 연산자들의 앞글자를 따서 ARX 구조로 불리기도 한다. 체스 2007에서 경량 블록 암호 PRESENT가 발표되었다. 이 역시 하드웨어 구현 면적의 최소화를 위해 노력했는데, 4비트 S-box와 비트 치환으로 라운드 함수를 구성했다. 4비트 S-box는 AES의 8비트 S-box보다 복잡도가 매우 낮아서 하드웨어의 구현 면적이 좁고 비트 치환이 단순히 비트의 위치를 옮겨주는 연산이기 때문에 별도의 구현 비용 또한 발생하지 않는다. FSE 2007에서 발표된 경량 블록 암호 CLEFIA는 위의 두 블록 암호와 다른 경량성 정의에 기반한다. CLEFIA의 설계자들은 AES와 동일한 블록길이와 키 길이를 고수해서 언제나 동일한 안전성을 제공할 수 있도록 개발했다. 또, 더 강력한 확산 계층을 적용해서 라운드 수를 줄여서 결과적으로 암호화 속도가 향상되도록 개발했다. 즉, 동일한 안전성과 구현 면적에서 암호화 속도가 빠르다면 전력 소모가 감소한다는 관점에서 경량성을 강조했다.  
+
경량 대칭키 암호 알고리즘은 2001년 AES 표준화 이후로 본격적으로 연구되기 시작했다. 서버나 PC 등 대부분의 환경의 암호화를 AES가 맡게 되었지만, 경량 환경은 AES의 설계에서 고려된 것이 아니었기 때문이다. 또, 컴퓨터 시스템과 네트워크 기술의 발전은 곧 모든 장비의 소형화와 지능화라는 결과로 이어지기 때문에, 하드웨어나 소프트웨어의 최적화는 제품의 성능이나 기능 향상, 개발 비용의 최소화 등에 매우 중요한 역할을 맡고 있다. 암호학자들은 경량 암호 알고리즘을 가용 자원이 제한된 다양한 환경에서 효율적으로 구현하고 동작할 수 있는 암호 알고리즘이라고 정의한다. 이러한 경량 블록 암호 알고리즘의 초기는 설계 초점을 하드웨어 구현 면적의 최소화에 두었다. 체스 2006에서 발표된 경량 블록 암호 HIGHT는 하드웨어 구현 면적을 최소화하기 위해서  8비트 산술연산으로 라운드 함수를 구성했다. 다른 말로는 사용된 연산자들의 앞글자를 따서 ARX 구조로 불리기도 한다. 체스 2007에서 경량 블록 암호 PRESENT가 발표되었다. 이 역시 하드웨어 구현 면적의 최소화를 위해 노력했는데, 4비트 S-box와 비트 치환으로 라운드 함수를 구성했다. 4비트 S-box는 AES의 8비트 S-box보다 복잡도가 매우 낮아서 하드웨어의 구현 면적이 좁고 비트 치환이 단순히 비트의 위치를 옮겨주는 연산이기 때문에 별도의 구현 비용 또한 발생하지 않는다. FSE 2007에서 발표된 경량 블록 암호 CLEFIA는 위의 두 블록 암호와 다른 경량성 정의에 기반한다. CLEFIA의 설계자들은 AES와 동일한 블록길이와 키 길이를 고수해서 언제나 동일한 안전성을 제공할 수 있도록 개발했다. 또, 더 강력한 확산 계층을 적용해서 라운드 수를 줄여서 결과적으로 암호화 속도가 향상되도록 개발했다. 즉, 동일한 안전성과 구현 면적에서 암호화 속도가 빠르다면 전력 소모가 감소한다는 관점에서 경량성을 강조했다. 경량암호 HIGHT와 PRESENT가 발표된 뒤의 경량 블록 암호 설계 관련 연구 경향은 다음과 같이 정리되기도 한다.
 
+
# 경량 블록 암호 구현 방법의 다양화
경량암호 HIGHT와 PRESENT가 발표된 뒤의 경량 블록 암호 설계 관련 연구 경향은 1) 경량 블록 암호 구현 방법의 다양화, 2) 소프트웨어 경량의 개념 등장, 3) 하드웨어 및 소프트웨어 경량 구현에 적합한 연산들에 대한 연구, 4) 블록 암호의 가장 대표적인 안정성 분석 방법인 차분 공격과 선형 공격에 사용될 수 있는 특성들을 효율적으로 탐색하는 방법, 이렇게 네 가지로 정리되기도 한다. 하드웨어 경량 구현에서는 면적의 최소화 구현, 면적 대비 속도 최대화 구현과 관련한 연구가 진행되었고, ASIC 구현 프로세스에 따라 구현한 결과의 비교 분석 연구 또한 많다. 소프트웨어 경량 개념 등장은 저가형 중앙처리장치의 발전으로 소형화 영역이 더 이상 하드웨어만의 것이 아니게 되었기 때문에 연구가 증가했다. 경량 소프트웨어 구현에 적합한 암호 알고리즘의 필요성 증가에 따라, 코드 크기 최소화 구현, 코드 크기 대비 속도 최대화 구현, 속도 최대화 구현에 관한 연구가 진행되었다. <ref> 홍득조, 〈[경량 블록암호 알고리즘 설계 연구 동향]〉, 《정보보호학회지》, 2020-06 </ref>
+
# 소프트웨어 경량의 개념 등장
 +
# 하드웨어 및 소프트웨어 경량 구현에 적합한 연산들에 대한 연구
 +
# 블록 암호의 가장 대표적인 안정성 분석 방법인 차분 공격과 선형 공격에 사용될 수 있는 특성들을 효율적으로 탐색하는 방법<ref> 홍득조, 〈[경량 블록암호 알고리즘 설계 연구 동향]〉, 《정보보호학회지》, 2020-06 </ref>
  
 
=== 동향 ===
 
=== 동향 ===
24번째 줄: 26번째 줄:
  
 
* '''[[PRESENT]]'''  
 
* '''[[PRESENT]]'''  
:PRESENT는 AES 기반의 경량 블록 암호 알고리즘이다. 블록 사이즈는 64비트, 키 사이즈는 80바이트와 128비트 두 종류를 가지고 있어, 64비트의 평문과 80비트의 키를 사용한다. 전체 구조는 4비트의 S-box와 배타적 논리합 및 비트 시프트로 연산 되며 32라운드로 구성되어 있다. 암호화 강도는 AES와 비교하면 암호화 등급이 조금 낮지만, 하드웨어 설계에서는 훨씬 좋은 성능을 갖는 알고리즘이다. AES보다 2.5배 작은 하드웨어 설계가 가능하고, RFID, 스마트카드, USN 같은 시스템에 사용하기 위해서 면적과 소비전력을 개선하여 효율성을 높인 암호 알고리즘이다.
+
:PRESENT는 AES 기반의 경량 블록 암호 알고리즘이다. 블록 사이트는 64비트, 키 사이즈는 80바이트와 128비트 두 종류를 가지고 있어, 64비트의 평문과 80비트의 키를 사용한다. 전체 구조는 4비트의 S-BOX와 배타적 논리합 및 비트 시프트로 연산 되며 32라운드로 구성되어 있다. 암호화 강도는 AES와 비교하면 암호화 등급이 조금 낮지만, 하드웨어 설계에서는 훨씬 좋은 성능을 갖는 알고리즘이다. AES보다 2.5배 작은 하드웨어 설계가 가능하고, RFID, 스마트카드, USN 같은 시스템에 사용하기 위해서 면적과 소비전력을 개선하여 효율성을 높인 암호 알고리즘이다.
 
:PRESENT는 차분 오류 공격이 제기된 바가 있다. 부 채널 공격 기법에 해당하는 차분 오류 공격은 암호의 안정성 분석에서도 자주 사용되는 방식이다. 공격 방법은 다음과 같다. 공격자 이브는 총 31라운드 중에서 28라운드의 입력 레지스터에 2바이트 오류를 입력한다고 하자. 이를 통해 80비트 키의 경우에는 3개의 오류를 이용하여 평균 <math>2^{22.3}</math>개의 후보 비밀키를 얻을 수 있다. 비밀키는 이러한 과정을 통해 복구될 수 있다.  
 
:PRESENT는 차분 오류 공격이 제기된 바가 있다. 부 채널 공격 기법에 해당하는 차분 오류 공격은 암호의 안정성 분석에서도 자주 사용되는 방식이다. 공격 방법은 다음과 같다. 공격자 이브는 총 31라운드 중에서 28라운드의 입력 레지스터에 2바이트 오류를 입력한다고 하자. 이를 통해 80비트 키의 경우에는 3개의 오류를 이용하여 평균 <math>2^{22.3}</math>개의 후보 비밀키를 얻을 수 있다. 비밀키는 이러한 과정을 통해 복구될 수 있다.  
:하드웨어 구현할 때는 사용된 키의 비트수가 다른 알고리즘들에 비하여 적은 편이기 때문에 적은 수의 레지스터를 사용한다. 한 라운드동안 17개의 S-box를 병렬로 사용한 모듈과 17라운드 동안 1개의 S-box를 순차적으로 사용한 모듈을 모두 구현한다. 파이스텔 구조가 아니므로 복호화를 하기 위해서 각 함수의 역함수를 모두 구현한다.
+
:하드웨어 구현할 때는 사용된 키의 비트수가 다른 알고리즘들에 비하여 적은 편이기 때문에 적은 수의 레지스터를 사용한다. 한 라운드동안 17개의 S-BOX를 병렬로 사용한 모듈과 17라운드 동안 1개의 S-BOX를 순차적으로 사용한 모듈을 모두 구현한다. 파이스텔 구조가 아니므로 복호화를 하기 위해서 각 함수의 역함수를 모두 구현한다.
  
 
* '''[[CLEFIA]]'''  
 
* '''[[CLEFIA]]'''  
:소니에서 개발한 AES와 유사한 형태의 블록 암호 알고리즘이다. AES처럼 128, 192, 256비트의 세 가지 키를 사용할 수 있으며, 128비트의 평문을 암호화한다. 구조상으로는 파이스텔 형태를 취하고 있고, 키의 크기에 따라 라운드 수와 동장이 조금씩 변형되고, 18, 22, 26라운드로 구성되어 있다. 기본적으로 128비트의 평문은 4개의 32비트 데이터 블록으로 나뉘어 연산 된다. 키 화이트닝 기법이 사용되었고, 데이터 처리와 키 스케줄링의 두 부분으로 나뉘었다. 내부 함수에는 두 종류의 S-box가 사용되고, 데이터 처리부와 키 스케줄링에서 혼용된다. CLEFIA는 DRM 시스템에 적용하기 위해서 만들어진 알고리즘이기도 하다. 여기서 DRM 시스템이란 출판자, 작가와 같은 저작권 소유자가 배포한 하드웨어나 디지털 자료가 이들이 허용하고 의도한 용도로만 제한적으로 사용될 수 있도록 만드는 모든 기술을 의미한다.  
+
:소니에서 개발한 AES와 유사한 형태의 블록 암호 알고리즘이다. AES처럼 128, 192, 256비트의 세 가지 키를 사용할 수 있으며, 128비트의 평문을 암호화한다. 구조상으로는 파이스텔 형태를 취하고 있고, 키의 크기에 따라 라운드 수와 동장이 조금씩 변형되고, 18, 22, 26라운드로 구성되어 있다. 기본적으로 128비트의 평문은 4개의 32비트 데이터 블록으로 나뉘어 연산 된다. 키 화이트닝 기법이 사용되었고, 데이터 처리와 키 스케줄링의 두 부분으로 나뉘었다. 내부 함수에는 두 종류의 S-Box가 사용되고, 데이터 처리부와 키 스케줄링에서 혼용된다. CLEFIA는 DRM 시스템에 적용하기 위해서 만들어진 알고리즘이기도 하다. 여기서 DRM 시스템이란 출판자, 작가와 같은 저작권 소유자가 배포한 하드웨어나 디지털 자료가 이들이 허용하고 의도한 용도로만 제한적으로 사용될 수 있도록 만드는 모든 기술을 의미한다.  
 
:CLEFIA도 다중 불능 차분 공격이 제기되었다. 소니에서 공개했던 자체 평가에서는 선형 공격, 차분 공격, 불능 차분 공격, 연관키 공격 등이 있다. 차분 오류 공격을 이용하면 128비트 키의 경우 비밀키 전체를 복구하는데 평균적으로 18개의 오류 암호문으로 복구할 수 있다. 또한, 192비트 키와 256비트 키의 경우 평균 54개의 오류 암호문으로도 복구할 수 있다.   
 
:CLEFIA도 다중 불능 차분 공격이 제기되었다. 소니에서 공개했던 자체 평가에서는 선형 공격, 차분 공격, 불능 차분 공격, 연관키 공격 등이 있다. 차분 오류 공격을 이용하면 128비트 키의 경우 비밀키 전체를 복구하는데 평균적으로 18개의 오류 암호문으로 복구할 수 있다. 또한, 192비트 키와 256비트 키의 경우 평균 54개의 오류 암호문으로도 복구할 수 있다.   
  
86번째 줄: 88번째 줄:
 
== 참고자료 ==
 
== 참고자료 ==
 
* NIST 공식홈페이지 Lightweight Cryptography - https://csrc.nist.gov/projects/lightweight-cryptography
 
* NIST 공식홈페이지 Lightweight Cryptography - https://csrc.nist.gov/projects/lightweight-cryptography
* 한국인터넷진흥원 공식 홈페이지 암호이용 활성화 - https://seed.kisa.or.kr/kisa/index.do
+
* 한국인터넷진흥원 공식 홈페이지 암오이용활성화 - https://seed.kisa.or.kr/kisa/index.do
  
 
* 박채원, 〈[표준 경량 블록 암호 알고리즘들의 분석과 사물인터넷에 적용에 관한 조사]〉, 《시맨틱스칼라》
 
* 박채원, 〈[표준 경량 블록 암호 알고리즘들의 분석과 사물인터넷에 적용에 관한 조사]〉, 《시맨틱스칼라》

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)