공개 키, 개인 키 및 비대칭 암호화
이 글에서는 공개 키, 개인 키 및 비대칭 암호화의 원칙을 소개했습니다. 대칭 암호화와 비교하여 장단점을 비교하고 사용 시나리오의 차이점도 설명했습니다.
여러 문맥에서 개인 키와 공개 키에 대해 들어봤을 것입니다. 하지만 그것들이 무엇인지 정말 알고 있나요?
비대칭 암호화 대 대칭 암호화
개인 키와 공개 키는 비대칭 암호화(공개 키 암호화, PKC) 개념입니다.
비대칭 암호화는 두 개의 다른 키(개인 키 + 공개 키)를 사용하여 데이터를 암호화하거나 서명하는 방법을 지칭하며, 복호화 또는 서명 검증이 필요한 경우에 대응합니다. 공개 키는 누구에게나 보이는 반면, 개인 키는 키 소유자만 사용할 수 있습니다. 키의 이름만으로도 쉽게 알 수 있습니다.
비슷하게, 대칭 암호화가 같은 키를 사용하여 데이터를 암호화하고 복호화하는 방법을 의미한다고 추측할 수 있습니다.
따라서 대칭 및 비대칭 암호화의 암호화/복호화 과정을 간단한 주석으로 보여줍니다.
대칭 및 비대칭 암호화 알고리즘에서 암호화/복호화 기능이 다르며 종종 서로 다른 알고리즘을 사용한다는 점에 유의해야 합니다. 일반적인 대칭 암호화 알고리즘으로는 DES, AES, RC2, RC4 등이 있으며, 일반적인 비대칭 암호화 알고리즘으로는 RSA 및 EC가 있습니다.
Logto는 데이터 전송 암호화 및 복호화에 EC 알고리즘을 사용하며, 이는 RSA보다 효율적이고 안전합니다. 보다 자세한 내용은 이 게시물을 참조하세요. Logto는 레거시 시스템 과의 호환성을 개선하기 위해 다음 릴리스에서 RSA도 지원할 예정입니다.
비대칭 암호화를 사용하는 이유는 무엇인가요?
비대칭 암호화는 대칭 암호화의 키 분배 문제를 해결합니다.
대칭 암호화는 동일한 키를 사용하기 때문에 보안이 취약한 네트워크를 통해 키를 분배하게 되면 악의적인 제3자에게 키가 노출될 위험이 있습니다. 악의적인 제3자는 도난당한 키를 사용하여 해당 키로 암호화된 모든 정보에 접근할 수 있어 심각한 보안 위험을 초래합니다.
비대칭 암호화의 두 가지 일반적인 사용 사례
암호화된 데이터 전송
송신자는 수신자의 공개 키를 사용하여 정보를 암호화하고, 수신자는 자신의 개인 키를 사용하여 정보를 복호화합니다.
이론적으로 많은 사람들이 공개 키를 볼 수 있기 때문에, 이상적인 상황에서는 수신자가 여러 송신자로부터 암호화된 정보를 받을 수 있습니다. 게다가, 다수의 송신자는 다른 송신자들이 수신자에게 어떤 종류의 정보를 보냈는지 알 수 없습니다. 오직 수신자(개인 키 보유자)만이 정보를 복호화하고 복구할 수 있습니다.
공개 키와 개인 키는 종종 동시에 생성됩니다. 우리가 언급한 것처럼 한 쪽에서 공개 키와 개인 키를 생성한 후, 사용자에게 공개 키를 배포합니다. 양쪽 모두의 안전한 통신을 보장해야 하는 경우, 양쪽 모두 자신만의 개인 키와 공개 키를 생성한 후 각각의 공개 키를 교환해야 합니다. 이렇게 하면 양쪽 모두 상대방의 공개 키를 가지게 되어 자신의 개인 키와 상대방의 공개 키를 사용하여 암호화 및 복호화를 수행할 수 있습니다.
서명을 사용하여 데이터 무결성 보장
비대칭 암호화에서는 개인 키를 가진 쪽이 전송하는 데이터에 서명할 수 있습니다. 이후 수신자는 공개 키를 사용하여 데이터를 수신하면서 데이터 및 서명이 일치하는지 검증하여 전송 중 데이터가 변조되지 않았음을 확신할 수 있습니다.
이전에 정의한 주석을 사용하여 서명 및 서명 검증을 다음과 같이 나타낼 수 있습니다:
디지털 서명의 검증은 서명을 생성한 측이 해당 개인 키를 알고 있음을 증명합니다.
앞서 언급한 두 가지 사용 사례는 매우 익숙할 것입니다. 일상생활에서 거의 모든 서버-클라이언트 아키텍처 서비스는 데이터를 안전하게 보호하기 위해 비대칭 암호화를 사용합니다.
빠르게 성장하는 사용자 아이덴티티 프레임워크인 Logto도 사용자 데이터의 안전성을 보장하기 위해 PKC를 광범위하게 사용합니다. 사용자가 로그인 절차를 완료하면 Logto는 사용자가 필요한 리소스에 대한 특정 권한을 얻도록 접근 토큰을 발행합니다. Logto의 공개 키는 접근 토큰이 실제로 Logto에서 발행되었으며 악의적인 공격자에 의해 변조되지 않았음을 확인하는 데 사용됩 니다.
비대칭 암호화의 단점
일반적으로 대칭 암호화의 키 길이는 128비트 또는 256비트인 반면, 비대칭 암호화의 키 길이는 4,096비트에 이를 수 있습니다. 이는 개인 키와 공개 키가 수학적으로 관련되고 유일한 키 쌍이기 때문입니다. 이론적으로 공개 키를 알면 개인 키의 값을 계산할 수 있지만, 관련된 알고리즘의 복잡성 때문에 많은 시간이 소요됩니다. 개인 키를 "해독"하는 작업을 "불가능"하게 만들기 위해 긴 키 길이를 사용하는 것이 간단한 접근 방식입니다.
요약
비대칭 암호화는 앞서 논의한 바와 같이 계산 중 대칭 암호화에 비해 더 많은 컴퓨팅 자원과 시간을 소비합니다. 통신이 빈번한 애플리케이션에서는 비대칭 암호화의 광범위한 사용이 성능과 사용자 경험에 영향을 미칠 수 있습니다.
비즈니스 시나리오에서 성능과 데이터 보안을 균형 있게 유지하기 위해 대칭 및 비대칭 암호화는 종종 함께 사용됩니다. 자체 서비스를 구축할 때 각 단계의 데이터 보안 요구 사항을 고려하고 적절한 암호화 알고리즘을 선택할 수 있습니다.