세상이 점점 디지털화됨에 따라 보안의 필요성이 그 어느 때보다도 중요해졌습니다. 이러한 이유로 암호화가 사이버 보안에 사용되고 있습니다.
암호화를 뜻하는 Cryptography는 보안 커뮤니케이션 기법에 대한 학문을 의미하지만, 암호화로 해석되는 또 다른 단어인 Encryption, 즉 일반 텍스트를 암호문이라는 것으로 섞은 다음, 목적지에 도착하면 다시 일반 텍스트(Plaintext)로 변환하는 행위와 긴밀한 연관이 있습니다. 수백 년 전부터 최초의 현대식 암호 중 하나를 사용했다고 인정받는 그리스 역사가 폴리비오스와 프랑스 외교관 블레즈 드 비제네르부터, 줄리어스 시저 로마 황제와 2차 세계 대전 당시 에니그마(Enigma)라는 암호 해독기를 만든 아르투르 슈르비우스에 이르는 몇몇 역사적인 인물들이 암호를 만들고 사용했다고 인정되어 왔습니다. 이 중에 21세기의 암호를 알아볼 사람은 없을 것입니다. 하지만 암호화(Cryptography)란 정확히 무엇일까요? 그리고 암호화의 원리는 무엇일까요?
암호화의 정의
암호화는 정보를 봐야 하고 암호를 해독할 키가 있는 사람만 읽을 수 있도록 데이터를 난독화하거나 부호화하는 기법입니다. 암호화를 뜻하는 영어인 Cryptography는 숨긴다는 뜻의 “Kryptós”와 쓴다는 뜻의 “Graphein”이라는 두 단어의 합성어입니다. Cryptography라는 단어를 직역하면 숨긴 글이라는 뜻이지만, 실제로는 정보의 안전한 전달과 관련이 있습니다.
암호화의 사용은 고대 이집트인들이 싱형문자를 창의적으로 사용했던 시대까지 거슬러 올라갑니다. 하지만 부호화 기술은 천 년 동안 크게 발전했으며, 현대 암호화에서는 첨단 컴퓨터 기술, 엔지니어링 및 수학 등과 같은 분야를 결합하여 매우 정교하고 안전한 알고리즘과 암호를 만들어서 디지털 시대의 민감한 데이터를 보호합니다.
예를 들어 암호화는 데이터 보호를 위해 자주 사용되는 다양한 유형의 암호화 프로토콜을 만드는 데 사용됩니다. 이런 프로토콜의 예로는 128비트 또는 256비트 암호화, SSL(보안 소켓 계층) 및 TLS(전송 계층 보안) 등이 있습니다. 이런 암호화 프로토콜은 암호와 이메일부터 전자상거래와 은행 거래에 이르는 온갖 종류의 디지털 정보 및 데이터를 보호합니다.
암호화의 유형은 다양하여 여러 가지 용도에 유용합니다. 예를 들어 가장 간단한 암호화의 유형은 대칭 키 암호화입니다. 이 암호화에서는 비밀 키를 사용하여 데이터를 암호화한 후 수신자가 암호를 해독할 수 있도록 암호화된 메시지와 비밀 키를 모두 수신자에게 보냅니다. 물론 타인이 메시지를 가로채면 메시지의 암호를 쉽게 해독하여 정보를 훔칠 수 있다는 문제가 있습니다.
더 안전한 암호화 체계를 만들기 위해, 암호학자들은 "공개 키" 시스템이라고도 하는 대칭 암호화를 고안했습니다. 공개 키 시스템에서는 모든 사용자가 키를 두 개(공개 키 하나와 개인 키 하나)씩 갖습니다. 암호화된 메시지를 작성할 때 발신자는 메시지를 암호화하기 위해 수신자의 공개 키를 요청합니다. 그러면 의도한 수신자의 개인 키로만 암호를 해독할 수 있습니다. 이 방법을 사용하면 메시지를 타인이 가로채도 암호를 해독할 수 없습니다.
암호화는 왜 중요한가요?
암호화는 필수적인 사이버 보안 도구입니다. 암호화를 사용하면 데이터 및 사용자 보안이 한 층 더 강화되어 개인 정보 보호와 비밀 유지가 보장되고 사이버 범죄자가 데이터를 훔치지 못하게 하는 데 도움이 됩니다. 실제로 암호화는 다음과 같은 여러 가지 용도로 사용됩니다.
- 비밀 유지: 의도한 수신자만 정보에 접근하고 정보를 읽을 수 있으므로 대화와 데이터가 비공개로 유지됩니다.
- 데이터 무결성: 암호화는 발신자가 수신자에게 보내는 암호화된 데이터가 전송 중에 추적 가능한 흔적을 남기지 않고 수정 또는 달리 조작될 수 없도록 보장하며, 그에 대한 예시 중 하나는 디지털 서명입니다.
- 인증: 신원과 수신처(또는 발신처)를 확인합니다.
- 부인 방지: 발신자는 메시지가 전송되었음을 나중에 부인할 수 없기 때문에 자신의 메시지에 대해 책임지게 되며, 이러한 예시로는 디지털 서명과 이메일 추적이 있습니다.
사이버 보안에서의 암호화란?
암호화의 사용에 대한 관심은 컴퓨터가 발전하고 개방형 네트워크를 통해 연결됨에 따라 점점 커졌습니다. 시간이 지남에 따라, 정보가 이 네트워크를 통해 전송되는 동안 정보 가로채기 또는 조작을 방지해야 할 필요가 있음이 분명해졌습니다. IBM은 초기에 이 분야의 선구자였으며, 1960년대에 자사의 “Lucifer”(루시퍼) 암호화를 공개했습니다. 루시퍼는 이후에 첫 데이터 암호화 표준(DES)이 되었습니다.
현대인의 생활이 점점 디지털화됨에 따라 막대한 양의 민감한 정보를 보호하기 위해 암호화의 필요성이 더욱더 중요해졌습니다. 이제 암호화는 온라인 공간에서 여러 면으로 중요해졌습니다. 암호화는 온라인 활동의 필수적인 일부분이 되었는데, 매일 전송되는 민감한 데이터가 아주 많아졌기 때문입니다. 다음은 암호화가 실제로 사용되는 용도의 예입니다.
- 가상 사설망(VPN) 또는 SSL 같은 프로토콜을 사용한 안전하고 보안 수준이 높은 인터넷 브라우징.
- 올바른 권한이 있는 개인만 특정 작업 또는 기능을 수행하거나 특정한 것에 액세스할 수 있도록 액세스 권한 제한.
- 종단간 암호화를 통해 이메일, 로그인 자격 증명, 그리고 WhatsApp 또는 Signal 등을 사용한 문자 메시지까지도 포함하는 여러 가지 유형의 온라인 커뮤니케이션 보호.
- 사용자를 중간자 공격 같은 다양한 유형의 사이버 공격으로부터 보호.
- 회사가 GDPR(일반 데이터 보호 규정)에 제시된 데이터 보호 요건 같은 법적 요건을 준수하기 위해 사용 가능.
- 로그인 자격 증명(특히 비밀번호) 생성 및 확인.
- 암호 화폐의 안전한 관리 및 거래를 위해 사용 가능.
- 디지털 서명을 사용하여 온라인 문서 및 계약에 안전하게 서명 가능.
- 온라인 계정에 로그인할 때 신원 확인.
어떤 유형의 암호화가 있나요?
암호화의 정의는 꽤 광범위합니다. 이 용어에는 넓고 다양한 프로세스가 포함되기 때문입니다. 따라서, 전송하는 정보의 유형에 따라 보안 수준이 각각 다른 여러 가지 유형의 암호화 알고리즘이 있습니다. 다음은 세 가지의 주요 암호화 유형입니다.
- 대칭 키 암호화: 비교적 단순한 형태의 이 암호화의 이름은 발신자와 수신자가 모두 키 하나를 공유하여 정보를 암호화하고 암호를 해독한다는 사실에서 비롯되었습니다. 이 암호화의 예로는 DES(데이터 암호화 표준)와 AES(고급 암호화 표준) 등이 있습니다. 이 암호화를 사용하는 경우 발신자와 수신자가 서로 키를 안전하게 공유하는 방법을 찾는 것이 가장 큰 문제입니다.
- 비대칭 키 암호화: 상대적으로 안전한 암호화 유형이며, 발신자와 수신자에게 모두 키가 두 개씩(공개 키 하나와 개인 키 하나) 있어야 합니다. 이 암호화를 사용할 경우 발신자는 수신자의 공개 키를 사용하여 메시지를 암호화하는 한편, 수신자는 자신의 개인 키를 사용하여 암호를 해독합니다. 두 키는 서로 다르며 수신자에게만 개인 키가 있으므로 수신자만 정보를 읽을 수 있습니다. RSA 알고리즘은 비대칭 암호화의 여러 가지 형태 중에서 가장 많이 사용됩니다.
- 해시 함수: 키 사용을 수반하지 않는 암호화 알고리즘 유형입니다. 그 대신 일반 텍스트 정보의 길이에 따라 해시 값(고유 데이터 식별자 역할을 하는 길이가 일정한 숫자)이 생성되어 데이터를 암호화하는 데 사용됩니다. 해시 값은 일반적으로 다양한 운영 체제에서 예를 들어 암호를 보호하기 위해 사용됩니다.
위에서, 대칭 및 비대칭 암호화의 주된 차이점은 전자에 키가 하나만 사용되지만 후자에는 두 개가 필요하다는 것임을 분명히 알 수 있습니다.
대칭 암호화의 유형
대칭 암호화는 비밀 키 하나를 사용하여 정보를 암호화하고 암호를 해독하기 때문에 비밀 키 암호화라고도 합니다. 이 암호화 유형의 몇 가지 형태는 다음과 같습니다.
- 스트림 암호: 한 번에 데이터 1바이트에 적용되고, 암호화 키를 주기적으로 변경합니다. 이 과정에서 키스트림은 메시지 스트림과 연계되거나 메시지 스트림으로부터 독립적일 수 있으며, 각각의 경우를 자체 동기화(Self-synchronizing) 또는 동기식(Synchronous)이라고 합니다.
- 블록 암호: 파이스텔 암호를 포함하는 이 암호화 유형은 데이터를 한 번에 한 블록씩 암호화하고 암호를 해독합니다.
비대칭 키 암호화의 형태
공개 키 암호화라고도 하는 비대칭 암호화는 수신자에게 키가 공개 키와 개인 키, 두 개가 있다는 사실을 전제로 합니다. 공개 키는 발신자가 정보를 암호화하는 데 사용되는 한편, 수신자는 수신자만 갖고 있는 개인 키를 사용하여 메시지의 암호를 안전하게 해독합니다.
비대칭 키 암호화는 알고리즘을 사용하여 메시지를 암호화하고 암호를 해독합니다. 이런 알고리즘은 곱셈 또는(큰 소수 두 개를 곱하여 알아내기가 아주 어려운 매우 큰 무작위 숫자를 하나 생성하는) 인수 분해나 256비트 암호화처럼 해독하기가 거의 불가능한 매우 복잡한 숫자를 생성하는 누승법과 로그 같은 다양한 수학적 원리에 기반을 두고 있습니다. 다음과 같은 여러 가지 유형의 비대칭 키 알고리즘이 있습니다.
- RSA: 최초로 개발된 비대칭 암호화의 한 유형인 RSA는 디지털 서명과 키 교환 등의 근거로 사용됩니다. 이 알고리즘은 인수 분해의 원리에 기반을 두고 있습니다.
- 타원 곡선 암호화(ECC): 종종 스마트폰과 암호 화폐 교환에서 볼 수 있는 ECC는 타원 곡선의 대수 구조를 사용하여 복잡한 알고리즘을 만듭니다. ECC는 저장 메모리나 사용 대역폭이 많이 필요하지 않아 컴퓨팅 성능이 제한적인 전자 장치에 특히 유용하다는 중요한 장점이 있습니다.
- 디지털 서명 알고리즘(DSA): 모듈러 지수 연산의 원리에 기반을 두고 있는 DSA는 전자 서명 확인의 황금 표준이며, 미국 국립 표준기술원에서 만들었습니다.
- IBE(신원 기반 암호화): 이 고유 알고리즘은 메시지 수신자가 공개 키를 발신인에게 제공해야 하는 필요성을 없앱니다. 그 대신 발신자가 이메일 주소 같은 알려진 고유 식별자를 사용하여 메시지 암호를 해독할 공개 키를 생성합니다. 그러면 신뢰하는 타사 서버에서 해당하는 개인 키를 생성하고, 수신자는 이 키를 이용하여 정보의 암호를 해독할 수 있습니다.
암호화 공격
대부분의 다른 기술과 마찬가지로, 암호화도 점점 정교해졌습니다. 그렇다고 해서 이런 암호화를 해킹할 수 없는 것은 아닙니다. 키가 노출되면 외부인이 암호를 해킹하여 보호되는 데이터를 읽을 수 있습니다. 다음과 같은 잠재적인 문제에 주의해야 합니다.
- 보안이 약한 키: 키는 데이터를 다른 사람이 이해할 수 없도록 변경하고 위장하기 위해 암호화 알고리즘과 함께 사용하는 무작위 숫자의 모음입니다. 키가 길수록 숫자가 더 많이 포함되어 해킹하기가 훨씬 더 어렵기 때문에 데이터를 보호하는 데 더 효과적입니다.
- 잘못된 키 사용: 키는 올바르게 사용해야 하며, 그러지 않으면 해커가 쉽게 키를 알아내서 키로 보호되어야 하는 데이터에 접근할 수 있습니다.
- 키를 다른 용도에 재사용: 키는 각각 비밀번호처럼 고유해야 합니다. 여러 다른 시스템에 같은 키를 사용하면 암호화의 데이터 보호 기능이 약화됩니다.
- 키를 변경하지 않음: 암호화 키는 데이터를 보호하는 데 유용한 기간이 짧을 수 있어서 데이터를 안전하게 지키려면 키를 주기적으로 업데이트해야 합니다.
- 키를 주의 깊게 저장하지 않음: 키를 쉽게 찾을 수 없는 안전한 곳에 저장해야 합니다. 그러지 않으면 키가 도용되어 키로 보호하는 데이터가 위험해질 수 있습니다.
- 내부자 공격: 키에 합법적으로 액세스할 권한이 있는 개인(직원 등)과 악의적인 목적으로 키를 판매하는 개인 때문에 키가 위험해질 수 있습니다.
- 키를 백업하는 것을 잊어버림: 갑자기 키에 문제가 발생하면 키로 보호되는 데이터에 액세스하지 못할 수 있으므로 키를 백업해야 합니다.
- 키를 올바르지 않게 기록함: 키를 스프레드시트에 수동으로 입력하거나 종이에 적어 두는 방법이 논리적인 선택이라고 생각할 수 있지만, 오류와 도난에 취약한 방법이기도 합니다.
맞는 키를 찾아서 암호화를 뚫도록 고안된 특정 암호화 공격도 있습니다. 이런 공격은 일반적으로 다음과 같습니다.
- 무차별 대입 공격: 알려진 알고리즘을 사용하여 개인 키를 무작위로 추측하려고 하는 광범위한 공격.
- 암호 텍스트만(Ciphertext-only) 공격: 이 공격은 타인이 일반 텍스트를 가로채지 않고 암호화된 메시지를 가로채서 정보를 해독하고 나중에 일반 텍스트를 해독하기 위해 키를 알아내려는 과정을 포함합니다.
- 선택된 암호 텍스트(Chosen ciphertext) 공격: 선택된 일반 텍스트(Chosen plaintext) 공격의 반대인 이 공격에서는 공격자가 암호 텍스트의 한 부분을 해당하는 일반 텍스트와 대조, 분석하여 키를 알아냅니다.
- 선택된 일반 텍스트(Chosen plaintext) 공격: 이 공격에서는 타인이 해당하는 암호 텍스트의 일반 텍스트를 선택하여 암호화 키를 알아내려고 하기 시작합니다.
- 알려진 일반 텍스트(Known plaintext) 공격: 이 공격에서 공격자는 일반 텍스트 일부와 암호 텍스트 일부에 무작위로 액세스하여 암호화 키를 알아내기 시작합니다. 이 공격은 단순한 암호에 가장 효과적이어서 현대식 암호화에는 덜 유용합니다.
- 알고리즘 공격: 이런 공격에서는 사이버 범죄자가 알고리즘을 분석하여 암호화 키를 알아내려고 합니다.
암호화 공격의 위협을 줄이는 것이 가능할까요?
개인과 조직이 암호화 공격의 가능성을 낮추기 위해 시도할 수 있는 몇 가지 방법이 있습니다. 이런 방법은 근본적으로 키를 올바르게 관리하여 타인이 가로챌 가능성이나 가로채도 이용할 수 있는 가능성을 줄이도록 하기 위한 것입니다. 다음과 같은 방법이 권장됩니다.
- 특정 용도마다 키를 하나씩 사용하십시오. 예를 들어 인증과 디지털 서명에 각기 다른 키를 사용하십시오.
- 암호화 키를 더 강력한 키 암호화 키(KEK)로 보호하십시오.
- 하드웨어 보안 모듈을 사용하여 키를 관리하고 보호하십시오. 이런 모듈은 일반적인 비밀번호 관리 프로그램 같은 기능을 수행합니다.
- 키와 알고리즘이 주기적으로 업데이트되도록 하십시오.
- 민감한 데이터를 모두 암호화하십시오.
- 암호화 용도마다 강력한 고유 키를 각각 만드십시오.
- 키를 안전하게 저장하여 타인이 키에 쉽게 액세스할 수 없도록 하십시오.
- 암호화 체계가 올바르게 구현되도록 하십시오.
- 직원을 위한 보안 의식 교육에 암호화를 포함하십시오.
암호화의 필요성
암호화가 무엇인지에 대한 기초 지식만 있으면 됩니다. 하지만 암호화의 정의와 암호화 과정이 진행되는 방법과 암호화의 사이버 보안 용도를 알면 일상적인 디지털 상호 작용 관리에 더 주의를 기울일 수 있습니다. 그러면 대부분의 사람이 자신의 이메일, 암호, 온라인 구매 및 온라인 은행 거래(모두 암호화를 보안 기능에 사용함)를 더 안전하게 지키는 데 도움이 될 수 있습니다.
자주 묻는 질문
Kaspersky Premium + Kaspersky Safe Kids 1년 무료 이용권을 받으십시오. Kaspersky Premium은 최우수 보호, 최고 성능, 가장 빠른 VPN, 승인된 Windows 자녀 보호, Android 자녀 보호 최고 등급으로 AV-TEST 상을 5개 수상했습니다.
연관 제품 및 서비스: