■ 대칭키 암호 (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 |