암호 기법 시스템은 의도한 수신자가 암호화된 메시지를 (항상 그런 것은 아니지만 일반적으로 암호문을 평문으로 바꾸어) 활용할 수 있도록 하는 수단이 필요하다.
암호 기법과 암호화의 차이
암호화(Encryption)는 평문을 암호문으로 바꾸는 과정이다(Crypt라는 단어는 무덤을 연상시키지만 그리스어로 ‘숨겨진’ 또는 ‘비밀’이라는 의미다). 암호화는 암호 기법의 중요한 부분이지만 학문 전체를 아우르지는 못한다. 반대말은 복호화(Decryption)이다.암호화 과정의 중요한 측면은 거의 항상 알고리즘과 키(Key)가 수반된다는 점이다. 키는 또 다른 정보(거의 대부분 숫자)이며 암호화를 위해 알고리즘이 평문에 적용되는 방식을 지정한다. 일부 메시지가 암호화되는 방식을 알더라도 키가 없으면 복호화 하기가 어렵거나 불가능하다.
암호 기법의 역사
암호 기법의 구체적인 내용을 이해하는 데 좋은 방법은 알려진 암호 기법의 초기 형태를 살펴보는 것이다. 이것을 카이사르 암호(Caesar cipher)라고 부르는 이유는 줄리어스 시저가 자신의 비밀 우편을 위해 사용했기 때문이다. 카이사르 자서전의 저자 수에토니우스가 말했듯이 “그에게 비밀이 있는 경우 알파벳의 문자의 숫자를 바꾸어 암호로 썼다... 이걸 해독하여 이해하고 싶은 사람은 A 대신에 D를 사용하는 등 알파벳의 4번째 글자를 치환해야 했다.”수에토니우스의 설명은 암호 기법의 2가지 요소인 알고리즘과 키로 나누어 볼 수 있다. 여기에서 알고리즘은 단순하다. 각 글자를 나중에 알파벳의 다른 글자로 대체하는 것이다. 키는 알파벳의 많은 글자를 찾아 암호문을 만드는 방식이다. 수에토니우스가 설명한 암호의 버전에서는 3이지만 다른 변형도 가능하다. 예를 들어, 4의 키가 있으면 A가 E가 된다.
이 예에서 몇 가지를 확실히 짚고 넘어가야 한다. 이런 암호화는 원하는 메시지를 비밀스럽게 전송하는 꽤 단순한 방법을 제공한다. 암호 문구 시스템으로 “피자를 주문하자”는 말이 “나는 갈리아를 침략할 것이다”는 말이 되게 할 수도 있다.
이런 종류의 코드를 해석하려면 의사소통 체인의 양 끝 사람이 코드 문구책이 있어야 하며, 미리 생각하지 않은 새로운 문구는 암호화할 수 없다. 카이사르 암호를 통해 생각할 수 있는 모든 메시지를 암호화할 수 있다. 복잡한 코드책보다는 정보를 전달해 보관하기가 더 쉽고 안전하지만 소통하는 모든 사람이 알고리즘과 키를 미리 알아야 한다는 것이 문제다.
카이사르 암호는 환자식 암호(Substitution Cipher)라고도 부른다. 왜냐하면 각 글자가 다른 글자로 치환되기 때문이며, 이에 대한 다른 변형 방식에서는 문자 블록이나 단어 전체를 치환한다.
대부분의 역사에서 암호 기법은 정부와 군사 통신의 보안을 위해 배포된 다양한 환자식 암호로 구성되어 있었다. 중세 아랍의 수학자들은 이 학문, 특히 암호화의 미학을 발전시켰다. 연구원들이 특정 언어의 특정 글자가 다른 것들보다 더 많이 사용된다는 사실을 발견하면서 패턴을 인식하기가 더 쉬워진 경우도 있다.
하지만 대부분의 근대 암호화는 현대의 기준으로 보았을 때 놀랍도록 단순하며, 그 이유는 분명하다. 컴퓨터가 출현하기 전에는 수학적 변형을 암호화 또는 복호화가 가치가 있을 만큼 충분히 신속하게 수행하기가 어려웠다.
사실, 컴퓨터와 암호 기법의 발전은 밀접한 관련성이 있다. 현대 컴퓨터의 전도가 된 차분기관(Difference Engine)에 대한 아이디어를 제시한 찰스 배비지도 암호 기법에 관심이 있었다. 2차 세계대전 중 독일인들은 전기 기계식 에니그마(Enigma) 기계를 사용해 메시지를 암호화했고, 알려진 대로 영국에서 앨런 튜링이 이끄는 팀이 유사한 기계를 개발해 코드를 해독했으며, 그 과정에서 최초의 근대 컴퓨터의 기초가 수립되었다. 컴퓨터가 보급되면서 암호 기법이 급격히 복잡해졌지만 수십 년 이상 스파이와 장군들의 영역으로 남아 있었다. 하지만 1960년대가 되면서 상황이 달라지기 시작했다.
네트워크 보안의 암호 기법
최초의 컴퓨터 네트워크가 구성되면서 민간인들은 암호 기법의 중요성에 대해 생각하기 시작했다. 컴퓨터들은 단순히 상대방에 대한 직접 연결뿐 아니라 개방된 네트워크를 통해 대화하고 있었고, 이런 네트워킹이 다양한 측면에서 혁신적이었지만 네트워크를 통해 이동하는 데이터를 훔치기가 너무 쉬웠다. 그리고 금융 서비스가 초기의 컴퓨터 통신 사용례가 되면서 정보를 보호할 수 있는 방법을 찾아야 했다.IBM이 1960년대 말에 ‘루시퍼(Lucifer)’라는 암호화 방법으로 이를 주도했으며, 결국 미국 표준기술연구소(US National Bureau of Standards)는 이를 최초의 ‘데이터 암호화 표준(Data Encryption Standard, DES)’으로 성문화했다. 인터넷의 중요성이 커지고 더 많은 개선된 암호화가 필요하게 되면서 현재 전 세계로 날아다니는 데이터의 상당 부분이 앞으로 설명할 다양한 기법을 통해 암호화되고 있다.
암호 기법의 용도
지금까지 군사 보안 유지부터 인터넷에서 금융 데이터를 안전하게 전송하는 것까지 구체적인 암호 기법의 구체적인 적용에 관해 설명했다. 하지만 더 큰 그림에서 보면, 암호 기법을 활용해 달성하고자 하는 광범위한 사이버보안 목표가 존재하며, 사이버보안 컨설턴트 그레이 케슬러는 이렇게 설명했다. 암호 기법을 활용해 보안 전문가는 다음과 같은 목표를 수행할 수 있다.- 데이터 내용 기밀 보호
- 메시지 발송자와 수신자의 신원 인증
- 데이터의 무결성을 확보해 데이터가 변경되지 않았음을 입증
- 예정된 발송자가 정말로 이 메시지를 발송했음을 입증(부인 방지의 원칙)
이런 목표 가운데 일부는 CIA(Confidentiality(기밀성) Integrity(무결성) Availability(가용성)) 3원칙에서 변형된 것이다. 첫 번째 용도는 데이터를 암호화해 보호하는 것이다. 다른 것들은 설명이 필요하기 때문에 다른 암호 기법 유형을 설명하면서 살펴보자.
암호 기법의 유형
다양한 암호 기법 알고리즘이 사용되고 있지만 일반적으로 비밀 키 암호 기법, 공개키 암호 기법 및 해시 함수로 분류할 수 있다. 암호 기법 영역에서는 저마다 각각의 역할이 있다.- 비밀 키 암호 기법
앞서 설명한 카이사르 암호는 비밀 키 암호 기법의 좋은 예다. 카이사르와 100인 대장이 암호화된 메시지를 교환하는 경우, 두 당사자들은 키를 알아야 한다. 여기에서는 평문을 암호문으로 바꾸거나 그 반대의 경우를 위해 알파벳을 앞/뒤로 몇 글자나 이동해야 하는가이다. 하지만 키는 둘 사이에 비밀로 유지해야 한다.
예를 들어, 메시지와 함께 키를 전송할 수 없다. 왜냐하면 둘 다 적의 손에 들어가게 되면 쉽게 해독해 처음부터 암호화의 목적이 무산될 수 있기 때문이다. 카이사르와 그의 100인 대장은 아마도 먼 곳에서 전쟁을 치르는 상황에서는 덜 이상적이었겠지만 서로 직접 만났을 때 키에 관해 논의해야 했을 것이다.
대칭 키(Symmetric Key)라고도 부르는 비밀 키는 데이터 보안을 위해 널리 사용되고 있다. 예를 들어, 로컬 하드 드라이브의 보안에 매우 유용할 수 있다. 같은 사용자가 보호되는 데이터를 암호화 및 복호화 하기 때문에 비밀 키 공유는 문제가 되지 않는다. 비밀 키 암호 기법도 사용해 인터넷을 통해 전송되는 메시지를 보호할 수 있다. 하지만 이를 위해서는 다음 형태의 암호 기법과 함께 배치해야 한다.
- 공개 키 암호 기법
카이사르는 100인 대장들과 직접 대화할 수 있었지만 은행과의 전자 통신을 암호화하기 위해 은행에 찾아가 은행원에게 비공개 키가 무엇인지 파악하고 싶지는 않을 것이다. 그러면 온라인 뱅킹의 목적이 무색해질 것이다. 일반적으로 안전하게 기능하기 위해 인터넷은 내재적으로 안전하지 못한 네트워크를 통해 서로 대화하면서 안전한 통신을 위해 당사자들과 소통하는 수단이 필요하다. 이것은 공개 키 암호 기법을 통해 가능하다.
비대칭 키(Asymmetric Key)라고도 부르는 공개 키 암호 기법에서는 각 참여자가 2개의 키를 갖고 있다. 하나는 공개되어 있고 소통하고자 하는 당사자에게 전송된다. 해당 키를 사용해 메시지를 암호화한다. 하지만 다른 키는 비공개이고 그 누구와도 공유하지 않으며, 메시지를 복호화 하기 위해 필요하다.
비유하자면, 공개 키는 편지함의 슬롯을 편지를 넣을 수 있도록 넓게 열어놓는다. 자신에게 편지를 보낼 가능성이 있는 사람에게 이런 치수를 제공한다. 비공개 키는 편지를 꺼낼 수 있도록 편지함을 여는 데 사용하는 것이다.
한 키를 사용해 메시지를 암호화하고 다른 키를 사용해 복호화 하는 방법에 관한 수학은 카이사르 암호의 키가 작동하는 방식보다 덜 직관적이다. 이 과정의 핵심적인 원리는 2개의 키가 실제로 서로 수학적으로 연결되어 있기 때문에 비공개 키에서 공개 키를 얻는 것은 쉽지만 반대의 경우는 그렇지가 않다. 예를 들어, 비공개 키는 2개의 매우 큰 소수일 수 있으며, 둘을 곱해야 공개 키를 얻을 수 있다.
공개 키 암호 기법을 위해 필요한 연산은 훨씬 더 복잡하고 자원 집약적이기 때문에 비밀 키 인프라가 필요하다. 다행히도 이것을 사용해 온라인으로 전송하는 모든 메시지를 보호할 필요는 없다. 대신에 한 당사자가 공개 키 암호 기법을 사용해 다른 암호 기법 키가 포함된 메시지를 암호화한다. 그리고 안전하지 못한 인터넷을 통해 안전하게 전송된 이 키가 공개 키가 되어 비밀 키 암호화를 통해 암호화되는 훨씬 긴 통신 세션을 암호로 바꾼다.
이런 방식으로 공개 키 암호 기법이 기밀성을 뒷받침한다. 하지만 이런 공개 키도 공개 키 인프라(Public Key Infrastructure) 또는 PKI라고 알려진 더 큰 함수 세트의 일부이다. PKI는 주어진 공개 키를 특정 사람 또는 기관과 연계시키는 수단을 제공한다. 이를 통해 공개 키로 암호화된 메시지가 발송자의 신원을 확인하여 인증 및 부인 방지를 실시한다.
- 해시 함수(Hash functions)
공개 및 비공개 키 암호 기법 알고리즘은 모두 평문을 암호문으로 변환한 후 다시 평문으로 변환하게 된다. 반면에 해시 함수는 단방향 암호화 알고리즘이다. 평문을 암호화하면 결과 암호문(일명 해시)으로부터 절대로 복구할 수 없다.
이 때문에 해시 함수가 다소 무의미해 보일 수 있다. 하지만 해시 함수의 핵심은 같은 해시를 생성하는 2개의 평문이 존재하지 않는다는 점이다(수학적으로 정확한 말은 아니지만 실제로 사용 중인 해시 함수의 경우 발생 가능성이 일반적으로 무시할 수 있을 만큼 낮다).
따라서 해싱 알고리즘이 데이터 무결성 확보를 위해 좋은 도구가 된다. 예를 들어, 메시지와 함께 해시를 전송할 수 있다. 메시지를 수신하면 메시지 텍스트에서 같은 해싱 알고리즘을 실행한다. 생성한 해시가 메시지와 수반되는 것과 다른 경우 메시지가 전송 중 변경되었다는 것을 알 수 있다.
해싱을 사용해 비밀번호(password)의 기밀성을 확보하기도 한다. 비밀번호를 평문으로 저장하면 데이터 유출 발생 시 사용자들이 계정 및 신원 도난에 취약해지기 때문에 중대한 보안 금지 행위이다(그래도 대기업들은 여전히 그렇게 하고 있다). 대신에 해시된 버전의 사용자 비밀번호를 저장한다면 해커가 방어선을 무력화하더라도 이를 복호화해 다른 곳에 사용할 수 없을 것이다. 정당한 사용자가 비밀번호로 로그인하면 이를 해시해 파일에 있는 해시와 비교 확인하면 된다.
암호 기법 예시 및 기법
앞서 설명한 3가지 유형의 암호화를 이해하는 기법과 알고리즘이 많다. 이것들은 일반적으로 꽤 복잡하며 이번 기사의 범위를 벗어나기 때문에 보편적으로 사용되는 예시에 대해 자세히 알 수 있는 링크를 포함시켰다. - 비밀 키 암호 기법
트리플 DES(Triple DES): 앞서 논의한 DES의 최신 후속 제품
AES(Advanced Encryption Standard): 국가 표준으로 사용되었던 DES의 취약점을 보안하기 위해 고안된 암호 표준
보안 전문가 브루스 슈나이어의 블로피시(Blowfish)와 그 후속작 투피시(Twofish)
- 공개 키 암호 기법
디피-헬만 키 교환(Diffie-Hellman key exchange)
RSA
엘가멜(ElGamal)
- 해시 함수
특수 목적을 가진 아주 다양한 해시 함수가 있다. 해시 함수의 목록은 위키피디아에서 볼 수 있다. editor@itworld.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.