공개 키, 개인 키 및 비대칭 암호화
이 글에서는 공개 키, 개인 키 및 비대칭 암호화의 원칙을 소개했습니다. 대칭 암호화와 비교하여 장단점을 비교하고 사용 시나리오의 차이점도 설명했습니다.
여러 문맥에서 개인 키와 공개 키에 대해 들어봤을 것입니다. 하지만 그것들이 무엇인지 정말 알고 있나요?
비대칭 암호화 대 대칭 암호화
개인 키와 공개 키는 비대칭 암호화(공개 키 암호화, PKC) 개념입니다.
비대칭 암호화는 두 개의 다른 키(개인 키 + 공개 키)를 사용하여 데이터를 암호화하거나 서명하는 방법을 지칭하며, 복호화 또는 서명 검증이 필요한 경우에 대응합니다. 공개 키는 누구에게나 보이는 반면, 개인 키는 키 소유자만 사용할 수 있습니다. 키의 이름만으로도 쉽게 알 수 있습니다.
비슷하게, 대칭 암호화가 같은 키를 사용하여 데이터를 암호화하고 복호화하는 방법을 의미한다고 추측할 수 있습니다.
따라서 대칭 및 비대칭 암호화의 암호화/복호화 과정을 간단한 주석으로 보여줍니다.
대칭 및 비대칭 암호화 알고리즘에서 암호화/복호화 기능이 다르며 종종 서로 다른 알고리즘을 사용한다는 점에 유의해야 합니다. 일반적인 대칭 암호화 알고리즘으로는 DES, AES, RC2, RC4 등이 있으며, 일반적인 비대칭 암호화 알고리즘으로는 RSA 및 EC가 있습니다.
Logto는 데이터 전송 암호화 및 복호화에 EC 알고리즘을 사용하며, 이는 RSA보다 효율적이고 안전합니다. 보다 자세한 내용은 이 게시물을 참조하세요. Logto는 레거시 시스템과의 호환성을 개선하기 위해 다음 릴리스에서 RSA도 지원할 예정입니다.
비대칭 암호화를 사용하는 이유는 무엇인가요?
비대칭 암호화는 대칭 암호화의 키 분배 문제를 해결합니다.
대칭 암호화는 동일한 키를 사용하기 때문에 보안이 취약한 네트워크를 통해 키를 분배하게 되면 악의적인 제3자에게 키가 노출될 위험이 있습니다. 악의적인 제3자는 도난당한 키를 사용하여 해당 키로 암호화된 모든 정보에 접근할 수 있어 심각한 보안 위험을 초래합니다.
비대칭 암호화의 두 가지 일반적인 사용 사례
암호화된 데이터 전송
송신자는 수신자의 공개 키를 사용하여 정보를 암호화하고, 수신자는 자신의 개인 키를 사용하여 정보를 복호화합니다.
이론적으 로 많은 사람들이 공개 키를 볼 수 있기 때문에, 이상적인 상황에서는 수신자가 여러 송신자로부터 암호화된 정보를 받을 수 있습니다. 게다가, 다수의 송신자는 다른 송신자들이 수신자에게 어떤 종류의 정보를 보냈는지 알 수 없습니다. 오직 수신자(개인 키 보유자)만이 정보를 복호화하고 복구할 수 있습니다.
공개 키와 개인 키는 종종 동시에 생성됩니다. 우리가 언급한 것처럼 한 쪽에서 공개 키와 개인 키를 생성한 후, 사용자에게 공개 키를 배포합니다. 양쪽 모두의 안전한 통신을 보장해야 하는 경우, 양쪽 모두 자신만의 개인 키와 공개 키를 생성한 후 각각의 공개 키를 교환해야 합니다. 이렇게 하면 양쪽 모두 상대방의 공개 키를 가지게 되어 자신의 개인 키와 상대방의 공개 키를 사용하여 암호화 및 복호화를 수행할 수 있습니다.
서명을 사용하여 데이터 무결성 보장
비대칭 암호화에서는 개인 키를 가진 쪽이 전송하는 데이터에 서명할 수 있습니다. 이후 수신자는 공개 키를 사용하여 데이터를 수신하면서 데이터 및 서명이 일치하는지 검증하여 전송 중 데이터가 변조되지 않았음을 확신할 수 있습니다.
이전에 정의한 주석을 사용하여 서명 및 서명 검증을 다음과 같이 나타낼 수 있습니다:
디지털 서명의 검증은 서명을 생성한 측이 해당 개인 키를 알고 있음을 증명합니다.