5분 이내에 설명되는 대칭 암호화

대칭 암호화는 정보를 보호하는 효과적인 방법으로, 암호화와 복호화 과정에 단 하나의 키를 사용합니다. 이는 데이터 보안을 위한 빠르고 효율적인 접근 방식입니다.

암호화는 평범한 텍스트를, 암호문이라고 하는 읽을 수 없는 형태로 바꾸는 과정입니다. 이 변환은 허가받지 않은 사용자가 중요한 정보에 접근하는 것을 막기 위해 이루어집니다. 쉽게 말해, 데이터를 뒤섞어 이해할 수 없게 만드는 기술입니다.

암호화 알고리즘은 데이터를 무작위 비트열을 사용해 알아볼 수 없도록 만듭니다. 이때 사용되는 무작위 비트 문자열이 바로 암호화 키입니다. 이 키는 암호화된 데이터를 원래대로 되돌리는 데에도 필요합니다.

2009년 2월, 데이브 크루즈는 자신의 은행 계좌에서 이상한 거래를 발견했습니다. 처음에는 소액 거래가 있었지만, 그는 크게 신경 쓰지 않았습니다. 그러나 6개월 후, 상황은 급격히 악화되었습니다. 하루 거래 금액이 500달러, 600달러, 심지어는 2,800달러에서 3,200달러까지 치솟았습니다.

채 6개월도 되지 않아 크루즈는 90만 달러를 부정한 공격자에게 빼앗겼고, 이를 수습하는 데 추가로 10만 달러를 사용해야 했습니다.

엎친 데 덮친 격으로, 그의 주민등록번호, 주소, 전화번호까지 은행 계좌 개설에 사용되었습니다. 이러한 모든 사태는 그의 컴퓨터를 감염시킨 악성코드 때문에 개인 데이터가 도난당하면서 발생했습니다.

크루즈의 사례는 특별한 것이 아닙니다. 많은 개인과 기업이 데이터 유출로 인해 귀중한 정보 손실, 서비스 중단, 그리고 막대한 금전적 피해를 입었습니다.

이러한 상황에서, 민감한 정보는 악의적인 공격으로부터 반드시 보호되어야 합니다. 이를 위한 최적의 방법 중 하나가 바로 대칭 암호화입니다.

대칭 암호화란?

암호화는 중요한 정보가 잘못된 손에 들어갈지라도, 권한 없는 사람이 내용을 이해할 수 없도록 하는 기술입니다. 암호화에는 크게 대칭 암호화와 비대칭 암호화, 두 가지 종류가 있습니다.

이 둘의 핵심적인 차이는 암호화와 복호화에 사용되는 키의 개수에 있습니다. 비대칭 암호화(공개 키 암호화)는 암호화에 쓰이는 키와 복호화에 쓰이는 키, 총 두 개의 키를 사용합니다.

반면, 대칭 암호화는 암호화된 데이터를 암호화하고 다시 해독하는 데 단 하나의 키를 사용합니다. 두 당사자가 대칭 암호화를 사용하여 데이터를 주고받을 때, 양쪽 모두 동일한 키를 사용하여 암호화 및 복호화를 수행합니다. 따라서 대칭 암호화는 ‘공유 키 암호화’라고도 불립니다.

키를 소유한 사람은 누구든 데이터를 암호화하거나 원래 형태로 복원할 수 있습니다. 그러므로 이 키를 권한 없는 사람에게 노출시키지 않는 것이 매우 중요합니다. 이 때문에 대칭 암호화를 ‘비밀 키 암호화’라고도 합니다. 대칭 암호화의 보안성은 오로지 이 키가 얼마나 안전하게 보호되는가에 달려 있습니다.

대칭 암호화의 작동 원리

대칭 암호화는 크게 스트림 모드와 블록 모드, 두 가지 방식으로 작동합니다. 스트림 모드에서는 데이터의 각 비트가 독립적으로 암호화되어 순차적으로 전송됩니다. 블록 모드에서는 암호화할 데이터를 56, 128, 192, 또는 256비트 크기의 블록으로 나눈 뒤, 각 블록을 암호화하여 전송합니다.

이미지 출처: 시스코

대칭 암호화를 사용하는 두 당사자는 AES(Advanced Encryption Standard)와 같은 대칭 암호화 알고리즘을 사용하여 대칭 키를 생성합니다. 이 키는 이후 통신 당사자끼리 공유됩니다.

키 합의 프로토콜, 예를 들어 ECDH(Elliptic Curve Diffie-Hellman Ephemeral)를 사용하거나, 공개 키로 암호화하여 키를 전송하는 방법도 있습니다.

또 다른 방법은 우편, 이메일, 전화, 또는 직접 만나는 것과 같은 다른 통신 수단을 활용하여 대칭 키를 공유하는 것입니다.

키를 받은 승인된 당사자는 이제 데이터를 안전하게 전송할 수 있습니다. 보낸 사람은 먼저 선호하는 암호화 모드(스트림 또는 블록)를 결정하고 데이터를 읽을 수 없는 암호문으로 암호화합니다. 블록 모드 암호화가 더 현대적이고 선호되는 선택입니다.

암호화된 데이터는 의도된 수신자에게 전송됩니다. 데이터를 암호문으로 받으면, 수신자는 합의된 키를 사용하여 암호문을 사람이 읽을 수 있는 형식으로 다시 변환합니다. 이를 ‘복호화’라고 합니다.

대칭 암호화 알고리즘

일반적으로 사용되는 대칭 암호화 알고리즘은 다음과 같습니다.

#1. 데이터 암호화 표준(DES)

DES는 1970년대 초 IBM에서 개발한 알고리즘으로, 사용과 구현이 간편한 안전한 데이터 암호화 방법을 제공하고자 했습니다.

DES는 데이터를 64비트 블록으로 나누고, 56비트 키를 사용하여 데이터를 암호화합니다. 그러나 DES는 보안성이 떨어진다는 평가를 받아 NIST에서 암호화 표준으로 철회되었습니다.

DES는 1970년대, 컴퓨터 성능이 제한적이었던 시대에 개발되었기 때문에 56비트 키 길이도 충분했습니다. 그러나 오늘날에는 최신 컴퓨터로 56비트 키를 무차별 대입 공격으로 쉽게 해독할 수 있습니다. 이러한 이유로 NIST(미국 국립표준기술연구소)는 DES 사용을 권장하지 않습니다.

#2. 3중 데이터 암호화 표준(3DES, TDES)

이미지 제공: 필립 렁

TDES는 DES를 기반으로 개발되었습니다. 키 길이가 짧다는 DES의 주요 단점을 개선하기 위해 만들어졌습니다. TDES는 데이터를 64비트 블록으로 나누고, 각 블록에 DES를 세 번 적용하여 이 문제를 해결합니다. 이렇게 하면 DES에서 사용하는 56비트 키가 3배로 늘어나 더 안전한 168비트 키가 됩니다.

이 알고리즘이 아직 사용되고 있기는 하지만, NIST는 TDES가 무차별 대입 공격에 취약하다는 보안 문제 때문에 2023년 12월 31일 이후 사용을 금지했습니다.

#3. 고급 암호화 표준(AES)

AES는 인터넷에서 가장 널리 쓰이는 대칭 알고리즘입니다. 다른 대칭 암호화 알고리즘보다 보안성이 더 높으며, DES를 대체할 목적으로 개발되었습니다.

AES는 대체-순열 네트워크에 기반하며 블록 암호화 방식을 사용합니다. 데이터는 128비트 블록으로 나뉘고, 각 블록이 한 번에 하나씩 암호화됩니다.

AES는 128비트, 192비트, 또는 256비트의 키 길이를 사용합니다. 매우 강력한 보안 성능을 제공하여 군사 기관, 은행, 병원, 정부 등에서 민감한 정보 보호에 사용됩니다.

2001년, NIST는 AES를 미국 정부에서 사용할 새로운 표준으로 발표했습니다. 이후 AES는 가장 인기 있고 널리 사용되는 대칭 알고리즘이 되었습니다.

대칭 암호화 시 고려사항

대칭 암호화를 사용할 때 몇 가지 고려해야 할 사항이 있습니다. 아래와 같습니다.

키 관리

대칭 암호화의 주요 취약점은 키가 생성되고, 인증된 당사자에게 배포되며, 안전하게 저장되는 방식에 있습니다. 따라서 대칭 암호화를 사용할 때에는 키가 안전하게 관리되고, 정기적으로 변경되며, 과도하게 사용되지 않도록 하는 효과적인 키 관리 전략이 필요합니다.

규정 준수

사용되는 대칭 알고리즘은 관련 규정을 준수해야 합니다. 예를 들어, TDES는 아직 사용 중이기는 하지만, 2023년 12월 31일 이후에 사용하면 규정 위반이 됩니다. DES와 같은 알고리즘을 사용하는 것 또한 명백한 규정 위반입니다. 반면에 AES는 관련 규정을 준수합니다.

키 길이

대칭 암호화의 보안성은 사용된 키의 길이와 직접적인 관련이 있습니다. 키 길이가 짧은 암호화 키를 선택하면 무차별 대입 공격에 취약하여 데이터 유출이 발생할 수 있습니다.

사용된 알고리즘 유형

각 대칭 알고리즘마다 강점, 약점, 그리고 용도가 다릅니다. 대칭 암호화를 사용할 때에는 암호화된 데이터에 최고 수준의 보안을 제공할 수 있는 적절한 알고리즘을 선택하는 것이 중요합니다.

이러한 고려사항들을 모두 염두에 두면, 대칭 암호화가 보안 요구 사항을 충족하도록 알고리즘 및 키 관리 방법을 올바르게 선택할 수 있습니다.

대칭 대 비대칭 암호화 비교

다음 표는 대칭 암호화와 비대칭 암호화를 비교한 것입니다.

대칭 암호화 비대칭 암호화
키 사용 암호화와 복호화에 동일한 키 사용 암호화에는 공개 키, 복호화에는 개인 키의 두 가지 다른 키를 사용
속도 빠르고 계산 리소스가 적게 필요 훨씬 느리고 리소스 소모가 큼
키 교환 암호화 키는 통신 전에 당사자 간에 안전하게 교환되어야 함 공개 키는 보안을 저해하지 않고 공유 가능
보안 암호화 및 복호화에 단일 키를 사용하므로 상대적으로 덜 안전함 암호화 및 복호화에 두 개의 다른 키를 사용하므로 더 안전함
적용 대량의 데이터 전송에 사용 소량의 데이터 전송에 적합

대칭 암호화와 비대칭 암호화는 각자의 장단점이 있으며, 상황에 따라 적절히 선택하여 사용됩니다. 최신 시스템에서는 이 두 가지 암호화 방식을 혼합하여 사용하기도 합니다.

대칭 암호화의 장점

대칭 암호화를 사용하면 다음과 같은 몇 가지 이점이 있습니다.

보안

대칭 암호화는 매우 안전한 암호화 방법입니다. 예를 들어, NIST에서 권장하는 대칭 암호화 알고리즘인 AES를 구현하면, 아무리 성능이 좋은 최신 컴퓨터로도 무차별 대입 공격을 통해 키를 해독하는 데 수십억 년이 걸립니다. 따라서 올바르게 사용하면 대칭 암호화는 매우 강력한 보안 수단이 될 수 있습니다.

속도

대칭 암호화 알고리즘은 계산량이 적고 사용하기 쉽습니다. 이러한 특성으로 인해 대칭 암호화는 매우 빠른 속도로 데이터를 처리할 수 있으며, 따라서 대량의 데이터를 보호하는 데 이상적입니다.

규정 준수

보안은 모든 비즈니스에서 매우 중요한 측면이므로, 처벌이나 법률 위반을 방지하기 위해 관련 규정을 준수하는 것이 필수적입니다. AES와 같은 대칭 암호화 알고리즘은 NIST와 같은 표준 기관에서 허용하므로, 이러한 알고리즘과 대칭 암호화를 사용하는 조직은 보안 관련 규정을 준수할 수 있습니다.

낮은 계산 리소스 요구

대칭 암호화는 계산 리소스 요구량이 적으므로, 처리 능력이 제한된 환경에서도 사용할 수 있습니다.

만약 암호화 방법 선택 시 속도, 보안, 규정 준수, 그리고 낮은 처리 성능 요구량 등을 고려하고 있다면, 대칭 암호화는 탁월한 선택이 될 수 있습니다.

대칭 암호화의 단점

대칭 암호화의 가장 큰 단점은 암호화 키를 안전하게 공유해야 한다는 점입니다. 대칭 암호화의 보안성은 사용자가 암호화 키를 안전하게 공유할 수 있는 능력에 크게 의존합니다. 키의 일부만 유출되어도 공격자가 전체 키를 재구성할 수 있다는 문제가 있습니다.

암호화 키가 잘못된 사람의 손에 들어가면, 악의적인 공격자가 그 키를 사용하여 암호화된 모든 데이터에 접근할 수 있습니다. 이는 심각한 결과를 초래할 수 있습니다. 키가 손상되었을 경우 사용자가 더 큰 피해를 입을 수 있다는 의미입니다.

이러한 단점에도 불구하고, 대칭 암호화는 데이터를 보호하는 좋은 방법입니다. 특히 유휴 상태의 데이터를 보호하려는 경우에 더욱 유용합니다.

암호화 학습 자료

대칭 암호화에 대해 더 자세히 알고 싶다면, 다음 자료들을 참고해 보세요.

#1. 대칭 암호화 알고리즘, 분석 및 응용

대학원생, 연구원, 실무 전문가를 대상으로 하는 이 책은 데이터 및 컴퓨터 시스템 보안과 관련이 높은 다양한 대칭 암호화 기술을 다룹니다.

이 책은 먼저 대칭 암호화의 기본 개념을 소개하고, 이후 다양한 대칭 암호화 기술과 그 활용법을 자세히 다룹니다. 독자들은 이를 통해 대칭 암호화에 대한 깊이 있는 이해를 얻을 수 있습니다.

복잡한 개념을 분석하고 설명하는 데 도움이 되는 다양한 예시를 제공하는 이 책은 대칭 암호화에 대한 지식을 한 단계 더 발전시키고 싶은 사람들에게 좋은 자료가 될 것입니다.

#2. 대칭 키 알고리즘

이 책은 암호화 분야를 처음 접하는 초보자들이 쉽게 이해할 수 있도록 다양한 대칭 암호화 알고리즘을 설명합니다.

이 책은 암호화에 사용되는 모든 용어를 다루고, 개념에 대한 설명을 강화하는 예시를 제공합니다. 또한, 그림과 간결한 설명을 통해 대칭 암호화의 기본 요소들을 분석합니다.

이 책은 암호화의 어려운 개념을 깊이 파고들기보다는 암호화 전반에 대해 폭넓게 배우고 싶어 하는 독자들에게 추천합니다.

#3. 암호화: 모든 암호화 알고리즘 배우기

이 Udemy 강좌는 암호화, 특히 대칭 및 비대칭 암호화에 관심이 있는 사람들에게 좋은 선택입니다. 이 강좌는 암호화에 대한 간단한 소개로 시작하여 학습자들이 암호화 학습 과정에서 접할 수 있는 모든 용어에 익숙해지도록 합니다.

또한 암호화된 데이터에 가해지는 다양한 유형의 공격을 탐색하고, 이러한 공격을 막기 위해 적용할 수 있는 암호화 기술을 다룹니다. 강사는 암호에 대한 심층적인 연구와 함께 암호화에 사용되는 다양한 암호 유형에 대한 정보도 제공합니다.

#4. 전문가를 위한 암호화 및 암호화

암호화 분야에 처음 발을 들여놓고 싶어 하는 사람들에게 이 Udemy 강좌는 최고의 선택입니다. 이 강좌는 학습자가 암호화 및 암호화에 대해 전혀 모른다는 것을 가정하고 시작합니다. 따라서 암호화, 정보 이론, 암호화의 구성 요소에 대한 소개로 시작합니다.

그런 다음 대칭 및 비대칭 암호화 알고리즘, 해시 함수 및 알고리즘을 포함한 중간 수준의 주제를 다룹니다. 또한 양자 이후 암호화, 링 서명, 안전한 다자간 계산, 영지식 증명과 같은 고급 개념도 포함합니다.

결론

대칭 암호화는 전송 중인 데이터와 저장된 데이터를 보호하는 데 매우 유용한 방법입니다. 값비싼 데이터 유출로부터 자신을 보호하고 싶다면, 저장 장치의 속도를 저해하거나 처리 능력에 큰 부담을 주지 않으면서 데이터를 암호화할 수 있는 대칭 암호화를 고려해 보세요. 대칭 암호화에 대한 자세한 정보를 얻고 싶다면 추천 도서를 읽거나 위에 소개된 강좌를 수강해 보는 것을 권장합니다.

클라우드 암호화, 관련 유형, Google Cloud 배포 등에 대해서도 알아보실 수 있습니다.