암호 알고리즘

2020-07-11

해당 Post는 암호 알고리즘에 대해서 정리한 파일입니다.


1. 암호 알고리즘의 개요

암호 알고리즘은 패스워드, 주민번호, 은행계좌와 같은 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미합니다.

  • 해시(Hash)를 사용하는 단방향 암호화 방식과, 개인키 및 공개키로 분류되는 양방향 암호화 방식으로 구분합니다. 그림- 암호 방식 분류

2. 개인키 암호화 기법

개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화합니다.

둘 혹은 그 이상의 사용자 사이에 공유된 “비밀 키”를 기반으로 합니다.

즉 대칭 키 암호화는 “같은” 비밀 키를 사용해 “암호화” 하고 “복호화” 하는 알고리즘입니다.

암호화 과정은 cipher라 불리는 암호화 알고리즘에 평문(입력)을 실행해 암호문(결과)을 생성합니다.

대칭 암호화 시스템은 대응하는 키를 무작위로 추측해 대입하기가 얼마나 어려운지에 달려있습니다.

따라서 암호화 알고리즘이 아닌 암호키의 비밀성이 중요합니다.

현재 가장 많이 사용되는 대칭 암호화 체계는 블록 사이퍼와 스트림 사이퍼입니다.

블록 사이퍼

데이터를 사전에 정의된 크기로 그룹화합니다.

각 블록은 상응하는 키와 대칭 알고리즘으로 암호화됩니다.

블록 단위 크기 128bit 단위로 암호화, 복호화합니다.

키의 크기는 128, 256bit

DES/3DES는 현재 권장하지 않으며 AES/SEED/ARIA를 사용합니다.

스트림 사이퍼

키 스트림이라는 의사 난수를 연속으로 생성해 암호화하려는 데이터와 결합

의사 난수를 1bit 단위로 생성, XOR 연산해 1bit 단위의 암호화 데이터를 생성

RC4, RC5, A5/1, A5/2, A5/3 등이 존재합니다.

장점

대칭 키 알고리즘은 메시지를 빠르게 암호화하고 해독하는 동시에 높은 수준의 보안을 제공합니다.

대칭 암호화의 보안은 키 길이를 증가시켜 향상할 수 있습니다.

대칭 키 길이에 추가되는 하나의 비트는 Brute force 공격을 통한 암호화 해제를 매우 어렵게 만듭니다.

단점

데이터를 암호화하고 해독하는 데 사용되는 키를 전송하는 본질적인 단점이 있습니다.

해당 키가 안전하지 않은 접속을 통해 공유되면, 제 3자에 의해 도난당할 수 있습니다.

인가되지 않은 자가 대칭 키에 접근해 키를 사용하게 된다면 암호화된 모든 데이터의 보안이 흔들리게 됩니다.

이런 문제를 해결하고자 많은 웹 프로토콜은 대칭 암호화와 비대칭 암호화를 혼합해 사용됩니다.

대표적인 예는 TLS(Transport Layer Security) 암호화 프로토콜입니다.

3. 공개 키(비대칭 키) 암호화

공개 키 암호화는 공개 키와 개인 키(비밀 키)를 사용해 암호화와 복호화하는 알고리즘입니다.

공개 키는 말 그대로 공개된 키로서 다른 이들에게도 공유되지만 키의 보안에 영향을 주지 않습니다.

개인 키는 고유한 키로서 개인 키를 소유한 자만이 공개 키를 사용해 암호화된 정보를 읽을 수 있어 안전하게 보관되어야 합니다.

공개 키가 나타난 이유

대칭 키 알고리즘은 제 3자에 의해 비밀 키를 도난당하면 암호화된 데이터에 접근할 수 있습니다.

반면 공개 키 알고리즘은 공개 키를 탈취당해도 데이터를 안전하게 보호할 수 있습니다.

한계

공개 키 알고리즘은 개인 키가 안전하게 보호된다는 가정을 전제로 합니다.

따라서 개인 키가 공유되거나 유출되었을 경우 공개 키를 통해 암호화된 데이터에 접근할 수 있습니다.

만약 개인 키를 잃어버렸다면 데이터에 접근할 수가 없습니다.