대칭 키 암호 방식이란 무엇인가요?
컴퓨터 보안의 핵심 요소 중 하나인 대칭 키 암호 방식은 메시지를 암호화하고 해독하는데 동일한 키를 사용하는 암호화 방식의 한 유형입니다.
대칭 키 암호 방식(또는 대칭형 암호화)은 메시지를 암호화하고 해독하는데 동일한 키를 사용하는 암호화 방식의 한 유형입니다. 이러한 정보 인코딩 방식은 지난 수십 년 간 정부와 군대 사이의 기밀 대화를 가능하게 하는데 주로 사용되어 왔습니다. 오늘날 대칭 키 알고리즘은 데이터 보안을 강화하기 위해 다양한 컴퓨터 시스템 전반에 적용되고 있습니다.
대칭 암호화는 어떻게 작동하나요?
대칭 암호화 방식은 둘 혹은 그 이상의 사용자 사이에 공유된 단일 키를 기반으로 합니다. 동일한 키가 소위 평문(plaintext)이라 하는(메시지 혹은 인코딩 되고 있는 데이터 조각)을 암호화하고 해독하는 데 사용됩니다. 암호화 과정은 사이퍼(cipher)라 불리는 암호화 알고리즘에 평문(입력)을 실행하는 것으로 구성되며, 이는 암호문(결과)을 생성합니다.
만약 암호화 체계가 충분히 강력하다면, 암호문에 포함된 정보를 읽거나 이에 접근할 수 있는 유일한 방법은 이를 해독하기 위한 상응하는 키를 사용하는 것입니다. 암호 해독 과정은 기본적으로 암호문을 평문으로 되바꾸는 과정입니다.
대칭 암호화 시스템의 보안은 대응하는 키를 무작위로 추측해 대입하기가 얼마나 어려운지에 달려있습니다. 128비트 키를 예로 들자면, 일반적인 컴퓨터 하드웨어를 사용하면 수십억 년이 필요합니다. 길이가 긴 암호화 키일수록, 이를 알아내기가 어렵습니다. 256비트 길이의 키는 일반적으로 상당히 안전한 것으로 간주되며, 이론적으로는 양자 컴퓨터의 강력한 공격도 방어할 수 있습니다.
오늘날 가장 많이 사용되는 일반적인 대칭 암호화 체계는 블록 사이퍼와 스트림 사이퍼에 기반합니다. 블록 사이퍼는 데이터를 사전에 정의된 사이즈로 그룹화하고, 각 블록은 상응하는 키와 대칭 알고리즘(에를 들면, 128비트 암호문)으로 암호화 됩니다. 반면, 스트림 사이퍼는 평문 데이터 블록을 암호화 하지 않으며, 단지 1비트를 증가시킵니다(1비트 일반 텍스트는 한 번에 1비트 암호 텍스트로 암호화됨).
대칭형 vs. 비대칭형 암호화
대칭형 암호화는 현대 컴퓨터 시스템에서 데이터를 암호화하는 두 가지 주된 방법 중 하나입니다. 다른 하나는 비대칭 암호화이며, 때로는 공개 키 암호화라고도 합니다. 이러한 방법의 주된 차이점은 비대칭 시스템은 대칭 체계에서 하나의 키를 사용하는 것과 달리 두 개의 키를 사용한다는 것입니다. 키 하나는 공개적으로 공유될 수 있으며(공개 키), 다른 하나는 비공개(개인 키)로 보관해야 합니다.
하나의 키 대신 두개를 사용하면, 대칭 암호화와 비대칭 암호화 간에 다양한 기능적 차이가 발생합니다. 비대칭 알고리즘은 대칭 알고리즘 보다 복잡하고 느립니다. 비대칭 암호화에서는 공개 키와 개인 키가 어느 정도 수학적으로 연관되어 있기 때문에, 대칭형 키가 제공하는 보안과 동일한 수준의 보안을 제공하기 위해서는 길이가 더 길어야 합니다.
현대 컴퓨터 시스템에서의 사용
대칭 암호화 알고리즘은 데이터 보안과 사용자 프라이버시를 위해 많은 현대 컴퓨터 시스템에 적용되고 있습니다. 보안 메시징 애플리케이션과 클라우드 저장소에 광범위하게 사용되는 Advanced Encryption Standard (AES)가 대칭형 사이퍼의 대표적인 예입니다.
AES는 소프트웨어 뿐만 아니라 컴퓨터 하드웨어에서도 직접 구현될 수 있습니다. 하드웨어 기반 대칭 암호화 체계는 일반적으로 AES 256를 활용하며, 이는 256비트 크기의 키를 가진 Advanced Encryption Standard의 변형입니다.
일반적으로 알고 있는 것과 달리 비트코인의 블록체인은 암호화를 사용하지 않는다는 점을 기억할 필요가 있습니다. 그 대신 암호화를 사용하지 않고 디지털 서명을 생성하는 타원 곡선 디지털 암호 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)라 알려진 특정한 종류의 디지털 서명 알고리즘(DSA)을 사용합니다.
ECDSA가 타원 곡선 암호(elliptic-curve cryptography, ECC)에 기반하고 있어서, 결과적으로 암호화를 포함한 디지털 서명과 의사 난수 생성과 같은 여러 작업에 적용할 수 있다고 혼동하기도 합니다. 그러나 ECDSA 자체는 암호화에 전혀 사용될 수 없습니다.
장점과 단점
대칭 알고리즘은 메시지를 빠르게 암호화하고 해독하는 동시에 꽤나 높은 수준의 보안을 제공합니다. 상대적으로 간결한 대칭형 시스템은 비대칭에 비해 적은 컴퓨터 전력을 필요로 한다는 장점도 갖고 있습니다. 또한 대칭 암호화의 보안은 키 길이를 증가시킴으로써 향상시킬 수 있습니다. 대칭 키 길이에 추가되는 하나의 비트는 무차별 대입 공격을 통한 암호화 해체를 기하급수적으로 어렵게 합니다.
대칭 암호화가 다양한 이점을 제공하지만, 한 가지 큰 단점이 있습니다. 바로, 데이터를 암호화 하고 해독하는 데 사용되는 키를 전송하는 본질적인 문제입니다. 해당 키가 안전하지 않은 접속을 통해 공유되면, 악의적인 3자에 의해 도난당할 위험이 있습니다. 인가되지 않은 사용자가 대칭 키에 접근하게 되면, 해당 키를 사용해 암호화된 모든 데이터 보안이 위태롭게 됩니다. 이러한 문제를 해결하기 위해, 많은 웹 프로토콜은 대칭 암호화와 비대칭 암호화를 혼합해 안전한 접속을 설정하고 있습니다. 이러한 하이브리드 시스템의 가장 대표적인 예는 Transport Layer Security (TLS) 암호화(cryptographic) 프로토콜입니다.
어떤 유형의 컴퓨터 암호화라도 부적절한 구현으로 인해 위험해지기 쉽다는 점을 상기할 필요가 있습니다. 충분한 길이의 키는 무차별 대입 공격을 산술적으로 불가능하게 만들지만, 프로그래머에 의해 발생한 오류는 사이버 공격으로 이어질 수 있습니다.
마치며
상대적으로 빠르고, 간결하며, 안전한 대칭 암호화는 인터넷 트래픽 보안에서부터 클라우드 서버에 저장된 데이터를 보호하는 데 이르기까지 광범위하게 사용되고 있습니다. 그럼에도 불구하고 안전하게 키를 전송하는 문제 때문에 많은 경우 비대칭 암호와 연동되며, 대칭 암호화 체계는 현대 컴퓨터 보안의 핵심 요소로 남아 있습니다.