공개키로 암호화하고, 개인키로 복호화하며, 공개키는 자유롭게 배포할 수 있지만, 개인키는 안전하게 보관해야 합니다.
속도가 느리지만 보안이 강력합니다.
하이브리드 암호화:
대칭키 암호화의 속도와 비대칭키 암호화의 보안을 결합한 방식입니다.
데이터를 대칭키로 암호화하고, 대칭키를 비대칭키 방식으로 암호화하여 안전하게 전달합니다.
속도와 보안의 균형을 맞출 수 있는 방식입니다.
대칭키 암호화와 비대칭키 암호화에는 어떤 암호화가 있는지 좀 더 상세히 알아보겠습니다. 추가적으로 해시 함수와 디지털 서명 등의 암호화 기술이 있는데 함께 알아보도록 하겠습니다. 각 방식은 특정 용도와 목적에 맞게 사용됩니다.
1. 대칭키 암호화 방식 (Symmetric Encryption)
DES (Data Encryption Standard): 예전에는 많이 사용되었으나 보안 취약점이 발견되어 현재는 사용되지 않거나 제한적으로 사용됩니다.
3DES (Triple DES): DES를 세 번 반복하여 암호화하는 방식으로, DES보다 안전하지만 여전히 취약할 수 있습니다.
AES (Advanced Encryption Standard): 대칭키 암호화 방식 중 가장 널리 사용되며, 보안성과 성능이 우수합니다. AES는 128, 192, 256비트 키를 사용합니다.
RC4: 스트림 암호 방식으로, 데이터가 전송될 때마다 순차적으로 암호화되는 방식입니다. 과거에 사용되었으나 보안상 취약점이 존재합니다.
Blowfish: 빠르고 효율적인 대칭키 암호화 알고리즘으로, 작은 크기의 암호화 키로도 강력한 보안을 제공합니다.
Twofish: Blowfish의 후속 알고리즘으로 보안과 성능이 더 향상된 알고리즘입니다.
2. 비대칭키 암호화 방식 (Asymmetric Encryption)
RSA (Rivest–Shamir–Adleman): 가장 널리 사용되는 비대칭키 암호화 알고리즘으로, 공개키와 개인키가 짝을 이룹니다. 데이터 암호화 및 디지털 서명에 사용됩니다.
ECC (Elliptic Curve Cryptography): 타원곡선 암호화 방식으로, RSA보다 짧은 키 길이로도 더 강력한 보안을 제공합니다. 특히 모바일 기기에서 많이 사용됩니다.
DSA (Digital Signature Algorithm): 디지털 서명 생성에 사용되는 알고리즘으로, 공개키 암호화 방식의 일종입니다.
ElGamal: 보안성이 뛰어나고 RSA와 비슷한 원리로 작동하지만, 효율성이 떨어져 실용성에서 RSA보다 적은 사용처를 가집니다.
3. 하이브리드 암호화 방식 (Hybrid Encryption)
SSL/TLS: 웹사이트의 보안을 위한 프로토콜로, 대칭키 암호화와 비대칭키 암호화를 결합하여 데이터 암호화 및 인증을 수행합니다. 웹 브라우저와 서버 간의 안전한 통신을 위해 사용됩니다.
PGP (Pretty Good Privacy): 이메일 보안을 위한 시스템으로, 대칭키 암호화와 비대칭키 암호화 방식을 결합하여 데이터를 암호화합니다.
IKE (Internet Key Exchange): IPsec VPN에서 사용되는 프로토콜로, 대칭키와 비대칭키 방식을 조합하여 키 교환과 인증을 수행합니다.
4. 해시 함수 (Hash Functions)
MD5 (Message Digest Algorithm 5): 128비트 해시 값을 생성하는 알고리즘으로, 한때 많이 사용되었으나 충돌 공격에 취약해 현재는 사용을 권장하지 않습니다.
실무에서는 파일의 위변조 여부를 판별할 때 정도로 주로 쓰이며, 변경관리시스템에서 파일의 위변조가 있었는지 감사할 때 주로 사용합니다. 동일한 파일명을 서버에 넣더라도, MD5해쉬값이 기존에 등록된 값과 다르면, 파일의 변조가 있었다고 판단할 수 있습니다. (변경관리 프로세스를 타지 않은 파일의 수기 배포 라던가…)
SHA (Secure Hash Algorithm): MD5보다 더 강력한 해시 함수로, SHA-1, SHA-256, SHA-512 등이 있습니다. SHA-256과 SHA-512는 현재 많이 사용됩니다.
HMAC (Hash-based Message Authentication Code): 해시 함수와 비밀키를 결합한 메시지 인증 코드로, 데이터의 무결성을 확인하는 데 사용됩니다.
5. 디지털 서명 (Digital Signatures)
RSA 서명: RSA 알고리즘을 사용하여 디지털 서명을 생성하는 방식입니다. 개인키로 서명하고, 공개키로 서명을 검증합니다.
ECDSA (Elliptic Curve Digital Signature Algorithm): 타원곡선 암호화를 사용하여 디지털 서명을 생성하는 알고리즘입니다. 보안성과 효율성에서 RSA보다 우수합니다.
6. 기타 암호화 기법
OTP (One-Time Pad): 완벽하게 안전한 암호화 방식으로, 키와 평문이 같은 길이를 가지며 한 번만 사용되는 암호화 기법입니다. 그러나 키 분배와 관리가 매우 어려운 점이 단점입니다.
Homomorphic Encryption: 암호화된 데이터 위에서 직접 계산을 수행할 수 있는 암호화 기법으로, 클라우드 환경에서 데이터의 프라이버시를 보호할 수 있습니다. (한글로는 동형 암호화라고도 합니다.)