암호화
용어심층Encryption
암호화는 평문을 키와 암호 알고리즘으로 제3자가 해독할 수 없는 암호문으로 바꾸어 데이터의 기밀성을 지키는 기술로, 인터넷 통신부터 블록체인 지갑까지 현대 정보 보안의 근간을 이룬다.
1.개요
암호화(Encryption)는 원본 데이터인 평문(plaintext)을 암호 알고리즘과 키(key)를 이용해 제3자가 해독할 수 없는 형태의 암호문(ciphertext)으로 바꾸는 과정이다. 암호화된 데이터는 올바른 키를 가진 사람만이 복호화를 통해 원래의 평문으로 되돌릴 수 있다. 이러한 기법을 연구하는 학문 분야를 암호학이라 하며, 암호화는 그 핵심 응용에 해당한다.
암호화의 일차적 목적은 데이터의 기밀성(confidentiality)을 보장하는 데 있다. 통신 내용이나 저장된 정보가 유출되더라도 키가 없으면 그 의미를 알 수 없으므로, 인터넷 통신, 금융 거래, 개인정보 보호 등 광범위한 영역에서 필수적인 보안 기술로 사용된다.
다만 암호화 자체가 정보의 가로채기나 변조를 물리적으로 막아 주는 것은 아니며, 가로챈 쪽이 그 내용을 이해하지 못하게 만드는 데 그 본질이 있다. 잘 설계된 암호 체계는 키 없이 암호문을 풀려면 막대한 연산 자원과 시간이 들도록 구성되어, 사실상 해독을 불가능에 가깝게 만든다.
[1]2.역사
2.1.고대와 근세
가장 오래된 암호화 사례로는 기원전 1900년경 이집트 크눔호테프 2세의 무덤에서 발견된 기호 대체가 꼽힌다. 고대 그리스와 로마에서는 군사 목적의 암호가 쓰였는데, 그중 카이사르 암호는 평문의 각 글자를 알파벳에서 고정된 수만큼 밀어 치환하는 방식으로 잘 알려져 있다. 서기 800년경 아랍 수학자 킨디는 문자의 출현 빈도를 분석해 이런 단일 치환 암호를 체계적으로 푸는 빈도 분석 기법을 고안했다. 이후 암호가 진행되면서 치환 알파벳을 바꿔 빈도 분석을 무력화하는 다중 알파벳 암호가 등장했으며, 레온 바티스타 알베르티가 1465년 이를 기술했다.
2.2.기계식 암호의 시대
1790년경 토머스 제퍼슨은 여러 개의 원반을 회전축에 끼워 최대 36자의 메시지를 뒤섞는 암호 장치를 고안했는데, 이는 오늘날 제퍼슨 디스크로 불린다. 유사한 장치인 M-94는 1917년 미국 육군의 조지프 모본이 독자적으로 개발해 1942년까지 미군 통신에 쓰였다. 제2차 세계대전에서 추축국이 사용한 에니그마 기계는 날마다 글자 대응 조합을 통째로 바꾼다는 점에서 더 복잡했고, 연합국은 연산 능력을 동원해 검토해야 할 조합의 수를 크게 줄이는 방식으로 이를 해독했다.
2.3.현대 컴퓨터 암호
초기 현대 암호 표준의 하나인 DES는 56비트 키를 사용했는데, 이는 약 2의 56제곱(7경여) 가지 경우의 수에 해당한다. 이 키는 1999년 전자프런티어재단(EFF)이 만든 전용 무차별 대입 장비에 22시간 15분 만에 뚫렸다. 이후 표준은 AES(256비트), 투피시, ChaCha20-Poly1305, 서펀트(최대 512비트) 등 더 큰 키를 채택했다. 128비트 이상의 키를 쓰는 암호는 경우의 수가 지나치게 커 무차별 대입이 사실상 불가능하며, 이때 현실적인 공격은 암호 자체의 편향·설계 결함을 찾거나 부채널 공격으로 물리적 부작용을 노리는 쪽이다. 실제로 스트림 암호 RC4는 내재된 통계적 편향 때문에 해독되었다.
3.작동 원리와 키 구조
암호화 방식은 사용하는 키의 구조에 따라 크게 대칭키와 비대칭키로 나뉜다.
- 대칭키 암호화(symmetric encryption): 암호화와 복호화에 동일한 키를 사용하는 방식이다. 처리 속도가 빠르지만, 송신자와 수신자가 같은 키를 미리 안전하게 나눠 가져야 한다는 문제가 있다. AES가 대표적이며, 앞서 언급한 에니그마도 날마다 바뀌는 대칭키를 쓴 사례로 볼 수 있다.
- 비대칭키 암호화(asymmetric encryption): 공개키(public key)와 개인키라는 서로 다른 한 쌍의 키를 사용하는 방식이다. 공개키로 암호화한 데이터는 짝이 되는 개인키로만 복호화할 수 있어, 키를 미리 공유하지 않아도 안전한 통신이 가능하다. 공개키 암호의 개념은 1973년 한 기밀 문서에서 처음 기술되었고, 이후 공개 학술지에 발표된 디피-헬만 키 교환으로 널리 알려졌다.
1978년 발표된 RSA는 매우 큰 두 소수의 곱을 인수분해하기 어렵다는 성질에 기반한 대표적 공개키 암호로, 오늘날에도 전자서명 관련 응용에 널리 쓰인다. 타원곡선 암호(ECC)도 같은 계열에 속한다. 공개키 암호를 일반 사용자가 쉽게 다룰 수 있게 만든 프로그램으로는 필 짐머만이 1991년 소스 코드와 함께 무료로 배포한 PGP(Pretty Good Privacy)가 있으며, 이 소프트웨어는 2010년 시만텍에 인수되었다.
4.해싱·전자서명과의 구별
암호화는 데이터가 변조되지 않았음을 검증하는 해싱이나, 메시지의 발신자를 증명하는 전자서명과는 목적이 구별된다. 해싱은 원본으로 되돌릴 수 없는 단방향 변환인 반면, 암호화는 키를 통해 원본을 복원할 수 있는 양방향 변환이라는 점이 핵심적인 차이다.
또한 암호화는 내용의 기밀성만을 지킬 뿐, 그 자체로 메시지의 무결성이나 진위를 보장하지는 않는다. 이를 위해서는 메시지 인증 코드(MAC)나 전자서명 같은 별도의 기법이 필요하다. 암호화와 무결성 보호를 한꺼번에 제공하도록 설계된 방식을 인증 암호(authenticated encryption)라 한다.
5.활용 영역
암호화는 오랫동안 군과 정부의 비밀 통신 수단이었으나, 오늘날에는 민간 시스템 전반에서 정보를 보호하는 데 폭넓게 쓰인다. 보호 대상은 크게 저장된 데이터와 전송 중인 데이터로 나뉜다.
- 정지 상태(at rest): 컴퓨터나 USB 플래시 드라이브 등 저장 매체에 담긴 데이터를 암호화하면, 노트북·백업 장치의 분실이나 도난처럼 물리적 보안이 뚫렸을 때에도 내용을 지킬 수 있다. 저작물의 무단 복제를 막는 디지털 권리 관리(DRM) 역시 정지 상태 데이터 암호화의 한 형태다.
- 전송 중(in transit): 인터넷과 전자상거래, 휴대전화, 블루투스 기기, 은행 현금인출기(ATM) 등을 오가는 데이터는 네트워크 감청을 막기 위해 전송 과정에서 암호화된다.
암호화는 데이터를 빠르게 폐기하는 수단으로도 쓰인다. 저장 매체 전체를 다른 값으로 덮어쓰는 대신 암호화 키만 파기하면 남은 암호문을 사실상 복원 불가능하게 만들 수 있는데, 이를 암호화 파쇄(crypto-shredding)라 한다. 이 방식은 아이폰 등 iOS 기기에서 키를 별도의 '삭제 가능한 저장소'에 두는 형태로 구현된다. 다만 키가 데이터와 같은 장치에 저장돼 있으면, 기기에 물리적으로 접근한 사람에게는 이 방식만으로 충분한 보호가 되지 않는다.
6.암호화폐에서의 활용
암호화폐(cryptocurrency)라는 명칭 자체가 암호학에 뿌리를 두고 있다. 블록체인에서 비대칭키 암호 체계는 지갑의 근간을 이룬다. 사용자는 공개키로부터 파생된 주소로 자산을 수신하고, 자신만이 보유한 개인키로 거래에 서명하여 소유권을 증명한다. 이 개인키를 사람이 관리하기 쉬운 형태로 표현한 것이 시드 구문이다.
다만 블록체인의 거래 데이터 대부분은 검증을 위해 공개되므로 그 자체가 암호화되어 있는 것은 아니다. 즉 블록체인에서 암호 기술은 주로 서명과 주소 생성 과정에 쓰이며, 데이터를 감추는 암호화와는 구분해 이해할 필요가 있다. 한편 프라이버시를 강화한 일부 프로토콜에서는 영지식 증명과 같은 고급 암호 기법을 사용해 거래 내용을 감추면서도 그 유효성을 증명하기도 한다.
7.한계와 양자 컴퓨팅
암호 키의 길이는 대체로 그 암호의 강도를 가늠하는 지표가 된다. 예컨대 초기 표준인 DES의 56비트 키는 오늘날의 연산 능력 앞에서는 무차별 대입에 취약해, 더 이상 안전하다고 보지 않는다.
더 근본적인 도전은 양자 컴퓨팅이다. RSA의 안전성은 매우 큰 두 소수의 곱을 인수분해하기가 현실적으로 어렵다는 데 기대는데, 고전 컴퓨터로는 오래 걸리는 이 인수분해를 양자 알고리즘은 훨씬 빠르게 처리할 수 있다. 이 경우 현재 공개키 암호로 보호되는 데이터가 위협에 노출되며, 타원곡선 암호나 대칭키 암호도 정도의 차이는 있으나 영향을 받는다. 다만 현시점의 양자 컴퓨터는 처리 규모가 제한적이어서 아직 상용화 단계에 이르지 못했다. 이에 대비해 미국 국가안보국(NSA) 등은 양자 컴퓨터로도 풀기 어려운 양자내성암호(post-quantum cryptography) 표준을 준비하고 있다.
8.공격과 대응
암호화는 강력한 도구이지만 정보의 전 수명 주기를 홀로 지켜 주지는 못한다. 대부분의 응용은 정지 상태나 전송 중인 데이터만 보호하며, 클라우드처럼 데이터를 실제로 처리하는 단계에서는 평문이 노출될 수 있다. 이를 보완하려는 기술로, 암호문을 평문으로 되돌리지 않고도 연산을 수행하는 동형암호(homomorphic encryption)와 다자간 보안 컴퓨팅(secure multi-party computation)이 있으나, 아직 연산·통신 비용이 높다는 한계가 있다.
정지 상태 데이터를 노리는 공격도 다양하게 발전해 왔다. 암호문·암호 키를 겨냥한 공격, 내부자 공격, 데이터 무결성·파괴 공격, 그리고 데이터를 볼모로 잡는 랜섬웨어 공격 등이 그 예다. 또한 공격자는 암호를 직접 풀지 않고도 정보를 얻어낼 수 있는데, 통신량과 시점을 분석하는 트래픽 분석, 전자기 방사를 노리는 TEMPEST, 시스템에 심어 둔 트로이 목마 등이 이러한 우회 경로에 해당한다.
9.무결성과 메타데이터 유출
무결성 보호 장치인 MAC나 전자서명은 메시지를 작성한 바로 그 장치에서 암호문이 처음 만들어질 때 함께 적용되어야 한다. 그렇지 않으면 발신자와 암호화 지점 사이의 어떤 노드든 메시지를 조작할 수 있기 때문이다. 예를 들어 단말이 공격자가 통제하는 루트 인증서를 신뢰하도록 설정돼 있으면, 공격자는 전송 경로 중간에서 중간자 공격으로 암호화된 데이터를 들여다보거나 바꿀 수 있다. 네트워크 사업자가 수행하는 TLS 가로채기가 이러한 개입의 통제된 형태이며, 국가가 검열 목적으로 악용하기도 한다.
암호화가 내용을 효과적으로 감추더라도, 암호문의 길이 자체는 메타데이터로서 민감한 정보를 흘릴 수 있다. HTTPS를 겨냥한 CRIME·BREACH 공격은 암호문 길이 변화를 부채널로 이용해 정보를 캐낸 사례다. 암호화 전에 메시지에 패딩을 덧대면 실제 평문 길이를 감출 수 있지만, 그만큼 암호문이 커지고 대역폭 부담이 늘어난다. 패딩을 적용해 평문 구조에 대한 메타데이터를 드러내지 않는 균일 무작위 블롭(PURB) 같은 기법도 이런 유출을 줄이기 위한 것이다.
10.규제와 논란
암호화가 디지털 사회의 핵심 기반이 되면서, 국가 안보의 필요성과 사생활권 사이의 균형을 어떻게 잡을지가 오래도록 논쟁거리였다. 현대적 논쟁은 1990년대 미국 정부가 안보를 이유로 강한 암호화를 제한하려 하면서 본격화되었다. 한쪽은 강력한 암호화가 범죄자들이 불법 행위를 숨기기 쉽게 만든다고 우려하고, 다른 쪽은 그것이 디지털 통신의 안전을 지키는 토대라고 본다. 이 갈등은 2014년 애플과 구글이 기기에 암호화를 기본값으로 채택하면서 다시 뜨거워졌으며, 정부·기업·이용자를 아우르는 일련의 논란으로 이어졌다.
11.연표6건
- 1973이정표공개키 암호의 개념이 한 기밀 문서에서 처음 기술됨
- 1978출시두 소수의 곱을 이용하는 공개키 암호 RSA 발표
- 1991출시필 짐머만이 공개키 암호 프로그램 PGP를 소스 코드와 함께 무료 배포
- 1999사건EFF의 전용 무차별 대입 장비가 56비트 DES 키를 22시간 15분 만에 해독
- 2010이정표PGP가 시만텍에 인수됨
- 2014이정표애플과 구글이 기기 암호화를 기본값으로 채택하며 암호화 논쟁이 재점화
각주
- [1]위키백과 — 암호화
암호화, 어렵지 않아요 내 정보가 새어 나가도 남이 못 읽게 하는 법
1. 암호화가 대체 뭔가요?
암호화(Encryption)는 원래의 글자 그대로인 정보, 즉 평문(누구나 읽을 수 있는 원본 데이터)을 암호 알고리즘(정보를 뒤섞는 정해진 방법)과 키(key, 자물쇠를 여닫는 열쇠 같은 비밀값)를 이용해 남이 못 읽는 형태로 바꾸는 일이에요. 이렇게 바뀐 것을 암호문(ciphertext)이라고 해요. 암호문은 올바른 키를 가진 사람만 복호화(암호문을 원래 평문으로 되돌리는 것)를 통해 원래대로 읽을 수 있어요. 이런 것을 연구하는 학문을 암호학이라고 하고, 암호화는 그 학문에서 가장 대표적으로 쓰이는 응용이에요.
암호화를 하는 첫 번째 목적은 기밀성, 즉 '남이 내용을 모르게 지키는 것'이에요. 통신 내용이나 저장해 둔 정보가 밖으로 새어 나가더라도 키가 없으면 무슨 뜻인지 알 수 없어요. 그래서 인터넷 통신, 금융 거래, 개인정보 보호처럼 넓은 분야에서 꼭 필요한 보안 기술로 쓰여요.
다만 암호화가 정보를 가로채거나 몰래 바꾸는 행위 자체를 물리적으로 막아 주는 건 아니에요. 가로챈 쪽이 그 내용을 이해하지 못하게 만드는 데 본질이 있어요. 잘 만든 암호는 키 없이 풀려고 하면 어마어마한 계산 자원과 시간이 들도록 설계돼서, 사실상 푸는 게 거의 불가능해요.
이렇게 보면 쉬워요 · 편지를 아무나 못 읽는 특수한 글자로 바꿔 쓰고, 그 글자를 읽는 열쇠는 상대방만 갖고 있는 셈이에요.
2. 암호는 언제부터 있었나요?
가장 오래된 암호화 사례로는 기원전 1900년경 이집트 크눔호테프 2세의 무덤에서 발견된 기호 바꿔치기가 꼽혀요. 고대 그리스와 로마에서는 군사 목적으로 암호를 썼는데, 그중 카이사르 암호는 평문의 각 글자를 알파벳에서 정해진 수만큼 밀어서 다른 글자로 바꾸는 방식으로 잘 알려져 있어요. 서기 800년경에는 아랍 수학자 킨디가 글자가 얼마나 자주 나오는지를 따져서 이런 단순 치환 암호를 체계적으로 푸는 '빈도 분석' 기법을 만들었어요. 이후에는 중간중간 치환하는 알파벳을 바꿔서 빈도 분석을 무력화하는 '다중 알파벳 암호'가 나왔고, 레온 바티스타 알베르티가 1465년에 이를 기록했어요.
기계로 암호를 만들던 시대도 있었어요. 1790년경 토머스 제퍼슨은 여러 개의 원반을 하나의 축에 끼워 최대 36글자짜리 메시지를 뒤섞는 장치를 고안했는데, 오늘날 이를 제퍼슨 디스크라고 불러요. 비슷한 장치인 M-94는 1917년 미국 육군의 조지프 모본이 따로 개발해서 1942년까지 미군 통신에 쓰였어요. 제2차 세계대전에서 추축국이 쓴 에니그마 기계는 날마다 글자를 대응시키는 조합을 통째로 바꿨기 때문에 더 복잡했는데, 연합국은 계산 능력을 동원해 살펴봐야 할 조합의 수를 크게 줄이는 방식으로 이를 풀어냈어요.
컴퓨터로 넘어오면서 암호도 달라졌어요. 초기 현대 암호 표준의 하나인 DES는 56비트짜리 키를 썼는데, 이는 약 2의 56제곱, 그러니까 7경(0이 16개나 붙는 엄청난 수) 가지 경우의 수예요. 하지만 이 키는 1999년 전자프런티어재단(EFF)이 만든 전용 장비가 가능한 모든 경우를 하나씩 다 넣어 보는 '무차별 대입' 방식으로 22시간 15분 만에 뚫어 버렸어요. 그 뒤로는 AES(256비트), 투피시, ChaCha20-Poly1305, 서펀트(최대 512비트)처럼 더 큰 키를 쓰는 표준이 나왔어요. 128비트 이상 키를 쓰는 암호는 경우의 수가 너무 커서 무차별 대입이 사실상 불가능해요. 이럴 때 현실적인 공격은 암호 자체의 치우침이나 설계 결함을 찾거나, 부채널 공격(암호를 직접 풀지 않고 기기가 흘리는 물리적 흔적을 노리는 것)으로 파고드는 쪽이에요. 실제로 스트림 암호 RC4는 안에 통계적인 치우침이 있어서 결국 뚫렸어요.
이렇게 보면 쉬워요 · 카이사르 암호는 'A는 D로, B는 E로'처럼 글자를 몇 칸씩 밀어 쓰는 놀이와 같아요.
3. 암호는 어떻게 작동하고, 키는 몇 종류인가요?
암호화 방식은 어떤 키를 쓰느냐에 따라 크게 대칭키와 비대칭키로 나뉘어요.
첫째는 대칭키 암호화(symmetric encryption)예요. 암호를 걸 때와 풀 때 똑같은 하나의 키를 쓰는 방식이에요. 처리 속도가 빠르지만, 보내는 사람과 받는 사람이 같은 키를 미리 안전하게 나눠 가져야 한다는 문제가 있어요. AES가 대표적이고, 앞에서 말한 에니그마도 날마다 바뀌는 대칭키를 쓴 사례로 볼 수 있어요.
둘째는 비대칭키 암호화(asymmetric encryption)예요. 공개키(public key)와 개인키라는, 서로 다른 한 쌍의 키를 쓰는 방식이에요. 공개키로 잠근 데이터는 짝이 되는 개인키로만 풀 수 있어서, 키를 미리 나눠 갖지 않아도 안전하게 통신할 수 있어요. 이 공개키 암호의 아이디어는 1973년 한 기밀 문서에서 처음 기술됐고, 이후 공개 학술지에 실린 디피-헬만 키 교환으로 널리 알려졌어요.
1978년 발표된 RSA는 아주 큰 두 소수를 곱한 값을 다시 원래의 소수로 쪼개기(인수분해) 어렵다는 성질에 기댄 대표적인 공개키 암호예요. 오늘날에도 전자서명 관련 응용에 널리 쓰이고요. 타원곡선 암호(ECC)도 같은 계열에 속해요. 이런 공개키 암호를 보통 사람도 쉽게 쓸 수 있게 만든 프로그램으로는 필 짐머만이 1991년에 소스 코드와 함께 무료로 배포한 PGP(Pretty Good Privacy)가 있어요. 이 소프트웨어는 2010년 시만텍에 인수됐어요.
이렇게 보면 쉬워요 · 공개키는 '누구나 편지를 넣을 수 있는 우체통 투입구', 개인키는 '그 우체통을 열 수 있는 나만의 열쇠'예요.
4. 해싱·전자서명과는 뭐가 다른가요?
암호화는 데이터가 몰래 바뀌지 않았는지 확인하는 해싱이나, 이 메시지를 누가 보냈는지 증명하는 전자서명과는 목적이 달라요. 해싱은 한 번 바꾸면 원본으로 되돌릴 수 없는 '한 방향' 변환이에요. 반면 암호화는 키만 있으면 원본을 다시 복원할 수 있는 '양방향' 변환이라는 점이 핵심적인 차이예요.
또 암호화는 내용을 남이 못 읽게 지켜 줄 뿐, 그 자체로 메시지가 도중에 바뀌지 않았는지(무결성)나 진짜 맞는지(진위)까지 보장하지는 않아요. 그걸 위해서는 메시지 인증 코드(MAC)나 전자서명 같은 별도의 방법이 필요해요. 암호화와 무결성 보호를 한꺼번에 해 주도록 설계된 방식을 인증 암호(authenticated encryption)라고 해요.
이렇게 보면 쉬워요 · 해싱은 종이를 파쇄해 원래대로 못 붙이는 것, 암호화는 금고에 넣고 잠갔다가 열쇠로 다시 꺼내는 것과 같아요.
5. 암호화는 실제로 어디에 쓰이나요?
암호화는 오랫동안 군대와 정부의 비밀 통신 수단이었지만, 오늘날에는 민간 시스템 곳곳에서 정보를 지키는 데 폭넓게 쓰여요. 보호 대상은 크게 '저장돼 있는 데이터'와 '오가는 중인 데이터'로 나뉘어요.
먼저 정지 상태(at rest), 즉 저장된 데이터예요. 컴퓨터나 USB 플래시 드라이브 같은 저장 장치에 담긴 데이터를 암호화해 두면, 노트북이나 백업 장치를 잃어버리거나 도둑맞아서 물리적 보안이 뚫려도 내용을 지킬 수 있어요. 저작물을 함부로 복제하지 못하게 막는 디지털 권리 관리(DRM)도 이런 저장 데이터 암호화의 한 형태예요.
다음은 전송 중(in transit), 즉 오가는 중인 데이터예요. 인터넷과 전자상거래, 휴대전화, 블루투스 기기, 은행 현금인출기(ATM) 등을 오가는 데이터는 누군가 네트워크에서 몰래 엿보는 걸 막기 위해 전송 과정에서 암호화돼요.
암호화는 데이터를 빠르게 없애는 수단으로도 쓰여요. 저장 장치 전체를 다른 값으로 하나하나 덮어쓰는 대신, 암호화 키만 없애 버리면 남아 있는 암호문을 사실상 복원할 수 없게 만들 수 있어요. 이것을 암호화 파쇄(crypto-shredding)라고 해요. 이 방식은 아이폰 같은 iOS 기기에서 키를 별도의 '삭제 가능한 저장소'에 두는 형태로 구현돼요. 다만 키가 데이터와 같은 장치에 저장돼 있으면, 그 기기에 직접 손댈 수 있는 사람에게는 이 방법만으로 충분한 보호가 되지 않아요.
6. 암호화폐에서는 어떻게 쓰이나요?
암호화폐(cryptocurrency)라는 이름 자체가 암호학에 뿌리를 두고 있어요. 블록체인에서 비대칭키 암호 체계는 지갑의 근간을 이뤄요. 사용자는 공개키에서 만들어진 주소로 자산을 받고, 자기만 가진 개인키로 거래에 서명해서 '이건 내 것'이라고 소유권을 증명해요. 이 개인키를 사람이 관리하기 쉽게 단어들로 표현한 것이 시드 구문이에요.
다만 블록체인의 거래 데이터 대부분은 검증을 위해 공개되기 때문에, 그 자체가 암호화돼 있는 건 아니에요. 즉 블록체인에서 암호 기술은 주로 서명하고 주소를 만드는 과정에 쓰이고, 데이터를 감추는 암호화와는 구분해서 이해할 필요가 있어요. 한편 프라이버시를 강화한 일부 프로토콜에서는 영지식 증명 같은 고급 암호 기법을 써서, 거래 내용은 감추면서도 그 거래가 올바르다는 사실은 증명하기도 해요.
7. 암호화에도 약점이 있나요? 양자 컴퓨터가 왜 위협인가요?
암호 키의 길이는 대체로 그 암호가 얼마나 튼튼한지 가늠하는 지표가 돼요. 예를 들어 초기 표준인 DES의 56비트 키는 오늘날의 계산 능력 앞에서는 무차별 대입에 약해서, 더 이상 안전하다고 보지 않아요.
더 근본적인 도전은 양자 컴퓨팅이에요. RSA의 안전성은 아주 큰 두 소수를 곱한 값을 다시 소수로 쪼개기가 현실적으로 어렵다는 데 기대는데, 보통 컴퓨터로는 오래 걸리는 이 쪼개기를 양자 알고리즘은 훨씬 빠르게 해낼 수 있어요. 그렇게 되면 지금 공개키 암호로 지켜지는 데이터가 위협에 노출되고, 타원곡선 암호나 대칭키 암호도 정도의 차이는 있지만 영향을 받아요. 다만 지금 시점의 양자 컴퓨터는 처리할 수 있는 규모가 제한적이어서 아직 실제로 널리 쓰이는 단계에는 이르지 못했어요. 이에 대비해 미국 국가안보국(NSA) 등은 양자 컴퓨터로도 풀기 어려운 양자내성암호(post-quantum cryptography) 표준을 준비하고 있어요.
8. 암호를 뚫으려는 공격에는 어떤 게 있나요?
암호화는 강력한 도구이지만, 정보의 처음부터 끝까지 전 과정을 혼자서 지켜 주지는 못해요. 대부분의 응용은 저장된 데이터나 오가는 중인 데이터만 보호하고, 클라우드처럼 데이터를 실제로 처리하는 단계에서는 평문이 드러날 수 있어요. 이를 보완하려는 기술로, 암호문을 평문으로 되돌리지 않고도 그 위에서 바로 계산을 하는 동형암호(homomorphic encryption)와, 여러 참여자가 각자 정보를 감춘 채로 함께 계산하는 다자간 보안 컴퓨팅(secure multi-party computation)이 있어요. 다만 아직 계산과 통신 비용이 높다는 한계가 있어요.
저장된 데이터를 노리는 공격도 여러 방향으로 발전해 왔어요. 암호문이나 암호 키를 직접 겨냥한 공격, 내부자가 벌이는 공격, 데이터를 몰래 바꾸거나 아예 망가뜨리는 공격, 그리고 데이터를 볼모로 잡고 돈을 요구하는 랜섬웨어 공격 등이 그 예예요. 또 공격자는 암호를 직접 풀지 않고도 정보를 얻어낼 수 있어요. 통신량과 시점을 살펴보는 트래픽 분석, 기기에서 새어 나오는 전자기 방사를 노리는 TEMPEST, 시스템에 몰래 심어 둔 트로이 목마 등이 이런 우회 경로에 해당해요.
9. 내용을 감춰도 새어 나가는 정보가 있다고요?
메시지가 도중에 바뀌지 않았는지 지켜 주는 장치인 MAC나 전자서명은, 메시지를 작성한 바로 그 장치에서 암호문이 처음 만들어질 때 함께 적용돼야 해요. 그렇지 않으면 보낸 사람과 암호화가 이뤄지는 지점 사이에 있는 어떤 중간 지점이든 메시지를 몰래 조작할 수 있기 때문이에요. 예를 들어 내 단말기가 공격자가 통제하는 루트 인증서(신뢰의 뿌리 역할을 하는 증명서)를 믿도록 설정돼 있으면, 공격자는 전송 경로 한가운데서 중간자 공격으로 암호화된 데이터를 들여다보거나 바꿀 수 있어요. 네트워크 사업자가 하는 TLS 가로채기가 이런 개입의 통제된 형태이고, 국가가 검열 목적으로 악용하기도 해요.
암호화가 내용을 잘 감추더라도, 암호문의 '길이' 자체는 메타데이터(내용이 아니라 그 정보에 딸린 부수 정보)로서 민감한 사실을 흘릴 수 있어요. HTTPS를 겨냥한 CRIME·BREACH 공격은 암호문의 길이가 변하는 걸 부채널로 이용해 정보를 캐낸 사례예요. 암호를 걸기 전에 메시지에 패딩(빈 채움 값)을 덧대면 실제 평문의 길이를 감출 수 있지만, 그만큼 암호문이 커지고 대역폭 부담이 늘어나요. 패딩을 적절히 넣어 평문의 구조에 대한 메타데이터를 드러내지 않는 균일 무작위 블롭(PURB) 같은 기법도 이런 유출을 줄이려는 것이에요.
10. 암호화를 둘러싼 논쟁은 무엇인가요?
암호화가 디지털 사회의 핵심 바탕이 되면서, 국가 안보의 필요성과 개인의 사생활권 사이에서 어떻게 균형을 잡을지가 오래도록 논쟁거리였어요. 지금의 논쟁은 1990년대에 미국 정부가 안보를 이유로 강한 암호화를 제한하려 하면서 본격화됐어요. 한쪽에서는 강력한 암호화가 범죄자들이 나쁜 짓을 숨기기 쉽게 만든다고 걱정하고, 다른 쪽에서는 그것이야말로 디지털 통신의 안전을 지키는 토대라고 봐요. 이 갈등은 2014년 애플과 구글이 기기에 암호화를 기본값으로 채택하면서 다시 뜨거워졌고, 정부와 기업, 이용자를 아우르는 여러 논란으로 이어졌어요.
토큰포스트 위키, “암호화”, 2026-07-31 수정, https://wiki.tokenpost.kr/w/encryptionAccept: text/markdown 로 요청해도 같은 결과문단 10개 · 연표 6건 · 각주 1개