-
[암호학 기초] 2. 대칭 암호 (1)카테고리 없음 2021. 4. 23. 10:16
0. 살펴볼 내용
1. 비트열 조작과 XOR 연산
2. 블록 암호 개념
3. 스트림 암호 개념
4. '암호화가 깨졌다'의 의미 - DES, 트리플 DES, AES
1. 비트열 조작과 XOR 연산
1-1. 부호화(Encoding)란?
컴퓨터는 내부적으로 0과 1의 연속인 비트열로 동작한다. 문자도 사진도 비디오도 컴퓨터 안에서는 모두 비트열로 표현된다. 암호화를 행하는 프로그램은 비트열로 되어 있는 평문을 암호화하여 비트열로 되어 있는 암호문을 만들어내는 것이다. 부호화란 현재 사용하고 있는 문자를 ASCII(아스키)나 유니코드와 같은 코드북을 따라 비트열에 대응시키는 것이다.
1-2. XOR
아래는 XOR 연산을 보여준다.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
XOR 기호는 ⊕ 이다.
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
XOR을 2회 반복하면 평문이 나온다. 이를 대칭키 암호화에 적용할 수 있다.
0 ⊕ 0 = 0 ⊕ 0 = 0
0 ⊕ 1 = 1 ⊕ 1 = 0
1 ⊕ 0 = 1 ⊕ 0 = 1
1 ⊕ 1 = 0 ⊕ 1 = 1
2. 블록 암호화
고정된 크기의 평문 블록을 입력으로 하여 동일한 크기의 암호문 블록을 만들어내는 암호화 방법이다. 가장 보편적으로 사용되는 대칭 암호 알고리즘이 대표적인 블록 암호이다. 20글자를 암호화한다고 가정했을 때 1블록을 5글자로 정한다면, 4블록이 나오는 것이다. 블록은 한번에 처리되는 데이터의 양이라고 보면 된다. 알고리즘 종류에 따라서 블록의 크기는 다르다. 블록 암호의 예로 DES, 트리플 DES, AES가 있다.
3. 스트림 암호화
스트림 암호화는 한번에 한 바이트씩 암호화한다.
스트림 암호 흐름도 4. '암호화가 깨졌다'의 의미 - DES, 트리플 DES, AES
DES의 키의 길이가 56비트다. 무작위 공격으로 1998년의 DES Challenge II-1 에서 22,000명의 참여자 들이 협력하여 인터넷에 연결된 약 50,000대의 개인용 컴퓨터와 워크스테이션을 이용하여 72,057,594,037,927,936개의 키를 41일 만에 검색했다. 1998년의 DES Challenge II-2에서는 Electronic Frontier Foundation (EFF)에서 개발한 Deep Crack을 이용하여 56시간 만에 해결하였다. 1999년의 DES Challenge III에서는 22시간 15분 만에 DES 키가 깨졌다.
트리플 DES는 단순히 DES 암호를 세번 반복한 것이다. 위와 같이 암호문이 더이상 안전하지 않기 때문에 발전한 것이 트리플 DES이다. AES(Advanced Encryption Standard)는 지금까지 표준이었던 DES를 대신하는 새로운 표준이다. AES 암호는 안전하고 처리 속도가 고속이며 게다가 폭넓은 플랫폼에서 이용할 수 있다.