정보보호론/보안과 암호

대칭키 암호 시스템

retro_blue 2020. 9. 8. 22:21
반응형

■ 대칭키 암호 (Symmetric Cryptography)

 

- 대칭키 암호는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식

- 송신자가 키를 통하여 평문을 암호화하여 암호문을 보내면 수신자는 동일한 키를 이용하여 암호문을 복호화하여 평문을 만드는 원리

- 대칭키 암호는 비밀키를 이용한다고 하여 비밀키 방식 또는 관용키 방식이라고도 함

 

★ 대칭키 암호시스템의 특징

 - 공개키 암호 방식보다 암호화 속도가 빠르다

 - 비밀키 길이가 길어질수록 암호화 속도는 느려진다

 - 대표적인 대칭키 암호 알고리즘으로 DES, AES, SEED 등이 있다

 - 송신자와 수신자가 동일한 비밀키를 공유해야 된다

 - 비밀키 공유를 위해 공개키 암호 방식이 사용될 수 있다

 

☆ 장점

 - 키 크기가 상대적으로 작다

 - 암호 알고리즘 내부구조가 간단하여 시스템 개발 환경에 용이하다

 - 공개키(비대칭키) 방식에 비해 암호화 복호화 속도가 빠르다

 - 대용량의 자료를 암호화 복호화 하는데 공개키(비대칭키) 방식보다 유리하다

 

☆ 단점

 - 교환 당사자 간에 동일한 키를 공유해야 하므로 키 관리에 어려움

 - N명의 사용자들 간에 서로 다른 비밀키를 공유하기 위해서는 총 N(N-1)/2개의 비밀키가 필요하다. 따라서 키 관리가 복잡하고 어렵다

 - 자주 키 교환을 해야 하는 불편함이 있다

 - 키 관리가 어려워 전자상거래 등 디지털 서명 기법에 적용하기 곤란하다

 

■ 키분배센터 (KDC : Key Distribution Center)

 - KDC(Key Distribution Center)는 키의 분배를 담당하는 키분배센터라고 하는 중간의 기관을 말함

 - 대칭키(비밀키)에서 키 배송 문제를 해결하기 위한 방법

 - 대칭키 암호화 방식의 문제점인 키 관리의 어려움을 극복하기 위해 키분배센터(KDC)를 통해 키를 공유

 - 암호 통신이 필요해질 때마다 통신용 키를 키배포센터(KDC : Key Distribution Center)라는 신뢰받는 제3자에 의뢰해서 개인과 키 배포 사이에서만 키를 사전에 공유하는 방식이다

 - 비밀키 분배의 어려움을 극복하기 위해 제3자(키분배센터)를 통해 키를 전송하기도 한다

 - 공개키 방식을 이용한다(대칭키를 교환하기 위해 공개키 암호를 사용)

 

 

■ 대칭키 암호 종류

 

1) DES (Data Encryption Standard)

 - 암호키와 복호키가 같은 대칭키 암호로 속도가 빠르고 간편하게 다량의 문서를 암호화 할 수 있음

 - 1977년 미국 표준 암호 알고리즘으로 채택

 - 대칭 블록암호로써 평문의 각 블록의 길이가 64비트이고 키가 64비트(실제로는 56비트가 키이고 8비트는 검사용)이며 암호문이 64비트인 암호

 - 64비트보다 긴 평문은 64비트 블록으로 나눈다. DES 구조는 Feistel 네트워크의 변형된 형태

 - 라운드 횟수는 16. 한 번의 암호화를 위해 16 라운드를 거친다

 - 각 라운드마다 전치(Transposition)와 대치(Substitution)의 과정을 거친 혼합변환식 암호 방식을 이용하여 암호문을 만든다

 - DES에 대한 전수공격으로 인해 안전하지 않다 판단되어 DES를 보호하기 위해 나온 것이 3DES(Triple Data Encryption Standard). 3개의 키 값을 사용하고 DES 16 라운드의 3배에 해당하는 48라운드를 수행하여 암호화 강도를 높임

 - Feistel 암호 방식

 

 

2) AES (Advanced Encryption Standard)

 - 1997년 미국 NIST(National Institute of Standards and Technology, 미국표준기술연구소)는 기존의 DES를 대신할 수 있는 새로운 암호 알고리즘으로 AES를 공모

 - 2000년 Rijndael을 최종 AES 알고리즘으로 선정하였음

 - AES는 바이트 기반 암호

 - 블록 길이가 128비트인 대칭 블록암호

 - AES는 128비트 평문을 128비트 암호문으로 출력하는 알고리즘

 - 128비트 크기의 입ㆍ출력 블록을 사용하고 128/192/256 비트의 가변크기 키 길이를 제공

 - 키 크기에 따라 AES-128, AES-192, AES-256으로 불리나 어떤 경우라도 키 확장 알고리즘으로부터 생성되는 라운드 키 크기는 평문과 암호문 크기와 동일한 128비트

 - non Feistel, 즉 SPN구조 알고리즘으로 암호화 알고리즘과 복호화 알고리즘이 서로 다르다

 - 입력을 여러 개의 소블록으로 나누고 각 소블록을 S-box에 입력하여 치환시키고 S-box의 출력을 P-box로 전치하는 과정을 반복하는 SPN(Substitution Permutation Network) 구조를 따름

 - 라운드 횟수는 한 번의 암/복호화를 반복하는 라운드 함수의 수행 횟수. 키의 길이에 따라 10, 12, 14라운드를 사용하며, 각 라운드에 대응하는 키의 크기는 128, 192, 256비트

 

함수명 기능 설명
SubBytes() 바이트 치환 비선형성을 갖는 S-박스를 적용하여 바이트 단위로 치환 수행
ShiftRows() 행의 이동 행 단위로 순환 시프트(Cyclic Shift)를 수행
MixColumns() 열의 혼합 높은 확산(Diffusion)을 제공하기 위해 열 단위로 혼합(Mixing)
AddRound 라운드키와 XOR 라운드 키와 state를 EX-OR

 - 열 혼합 과정(MixColumns) : AES 알고리즘을 구성하는 변환 과정 중 상태 배열의 열 단위의 행렬 곱셈과 같은 형태로 표현되는 것

 - AES는 암호화 마지막 라운드에서는 MixColumns()연산을 수행하지 않는다는 특징

 

 

3) SEED

 - 1999년 한국정보진흥원(현 한국인터넷진흥원)꽈 국내 암호전문가들이 함께 개발한 알고리즘

 - 인터넷, 전자상거래, 무선통신 등에서 사용하기 위해 만든 대칭키 알고리즘

 - 128비트 비밀키에서 생성된 16개의 64비트 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문 블록을 128비트의 암호문 블록으로 암호화 함

 - Feistel 구조

 

 

4) HIGHT (High Security and Light Weight)

 - 2005년 RFID, USN 등과 같이 저전력, 경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 국내기술(KISA, ETRI 부설 연구소, 고려대)로 개발한 64비트 블록암호

 - 2010년 ISO/IEC 국제표준 암호로 제정

 - Feistel 구조

 

 

5) IDEA (International Data Encryption Algorithm)

 - 유럽(스위스 연방기술 기관)에서 개발한 알고리즘

 - 128비트의 키 길이에 64비트 블록암호로 Feistel과 SPN의 중간형태 구조를 가짐 (KISA는 SPN구조로 정의)

 - 8라운드에 걸쳐 데이터를 변환하고 마지막에 한 번 더 키를 작용시켜 64비트 암호문을 생성. 보통 8.5라운드라고 칭함

 - DES에 비해 안전한 것으로 판단되고 있으며, PGP(Pretty Good Privacy)의 데이터 암호 알고리즘으로 채택되어 사용

 

 

6) RC4 (Ron's Code 4)

 - Ron Rivest가 1987년 설계한 가변 키 길이를 지원하는 스트림 암호로 미공개 암호였으나 1994년 인터넷 뉴스그룹에 익명으로 공개한 알고리즘

 - 여러 연구를 통해 취약한 것으로 밝혀져 있으며, RC4를 사용한 WEP의 경우 해당 프로토콜의 사용을 권장하지 않음

 - 바이트 단위로 작동되도록 만들어진 다양한 크기의 키를 사용

 - 사용되는 알고리즘은 랜덤 치환에 기초해서 만들어짐

 - 하나의 바이트를 출력하기 위해 8번에서 16번의 기계연산이 필요

 

 

7) RC5 (Ron's Code 5)

 - 1994년 미국 RSA 연구소에서 개발한 것으로 간단한 연산으로 빠른 암호화와 복호화가 가능하며, 대부분의 하드웨어에 적용이 가능

 - 입ㆍ출력, 키, 라운드 수가 가변인 블록 알고리즘을 이용하며, 32/64/128비트의 키를 가진다

 - 속도는 DES의 약 10배

 - Feistel 구조

 

 

8) ARIA (Academy Research Institute Agency)

 - 국가보안기술연구소(NSRI) 주도로 학계, 연구소, 정부기관(국가정보원) 등의 지원을 받아 개발한 국가 암호화 알고리즘

 - 경량 환경 및 하드웨어 구현을 위해 최적화 된 Involutional SPN 구조를 갖는 범용 블록암호 알고리즘

 - 국내기관에서 주도적으로 개발하였으며 우리나라 국가표준으로 지정

 - 전자정부 구현에 사용되었으며, SPN 구조를 가짐

 - 입ㆍ출력 크기와 사용 가능한 키 크기는 미국 표준 블록암호인 AES와 동일

 

 

9) LEA (Lightweight Encryption Algorithm)

 - 2012년 한국국가보안기술연구소가 개발한 128bit 경량 고속 블록암호 알고리즘

 - 다양한 정보보호 서비스에서 대용량 데이터를 빠르게 처리하거나 스마트폰 보안, 사물인터넷(IoT) 등 저전력 암호화에 널리 쓸 수 있음

 

 

 

♣ 대칭키 암호 종류 비교

 

  DES AES SEED HIGHT IDEA RC5 ARIA
시기 1976, 미국 1999 1999, 한국 한국 1990, 유럽 1994, 미국 2004, 한국
설명 전치암호/대치암호 혼합 열혼합 과정 추가 한국정보진흥원 개발 국내기술, 모바일 특화 유럽에서 많이 사용 키, 라운드수가 가변인 블록 알고리즘 우리나라 국가표준지정(전자정부 구현)
구조 Feistel SPN (=non Feistel) Feistel Feistel Feistel과 SPN의 중간 Feistel SPN
블록 크기 64bit 128bit 128bit 블록 64bit 64bir 32, 64, 128bit 128bit
키 길이 유효 56bit 128, 192, 256bit 128, 256bit 128bit 128bit 0~2048bit AES와 동일
(128/192/256bit)
라운드 16R 10, 12, 14R 16, 24R 32R 8R 0~255R 10, 12, 14R
특징 한계에 도달하여 AES 개발 코드의 간결성과 유효성
스마트폰 응용가능
민간부분에서 정보와 개인 프라이버시 보호 목적 RFID, USN 등과 같은 저전력, 경량화 8라운드의 알고리즘 DES 속도의 10배 경량 환경 및 하드웨어 구현

* DES가 SEED에 영향, AES가 ARIA에 영향

반응형

'정보보호론 > 보안과 암호' 카테고리의 다른 글

대칭키와 공개키 비교  (0) 2020.09.10
공개키(비대칭키) 암호시스템  (0) 2020.09.10
해커의 암호공격 방법  (0) 2020.09.08
암호 기법의 분류  (0) 2020.09.04
암호학의 이해  (0) 2020.09.03