단방향 암호화
단방향 암호화는 데이터를 해싱(Hashing) 처리하여 특정한 값으로 변환하며, 변환된 값을 원래 데이터로 복원할 수 없는 방식이다. 이는 데이터의 무결성을 검증하거나 민감 정보를 안전하게 저장할 때 사용된다.
특징
- 복호화 불가능: 입력 데이터를 암호화하면 다시 원본 데이터를 복원할 수 없다.
- 동일한 입력값은 항상 동일한 해시값을 생성.
- 해시값의 길이는 입력 데이터 길이에 상관없이 고정(예: SHA-256은 256비트).
- 주요 용도: 비밀번호 저장, 디지털 서명, 데이터 무결성 검증 등.
대표적인 단방향 암호화 알고리즘
- SHA-256
- MD5
SHA-256 (Secure Hash Algorithm 256-bit)
- SHA-256은 SHA-2 계열의 암호화 알고리즘 중 하나로, 256비트(32바이트) 길이의 고정된 해시값을 생성한다.
- 현재 블록체인(예: 비트코인), SSL 인증서, 디지털 서명 등에 널리 사용하고 있다.
예시
- 입력: "password123"
- 출력: ef92b778bafe771e89245b89ecbcfc1d5de77c6dfd6f4642a41e010f6fdb1d3f
MD5 (Message Digest Algorithm 5)
- 이전에 널리 사용되었으나 충돌 가능성이 높아 현재는 안전하지 않은 알고리즘
- MD5는 주로 파일을 인증하는 데 사용된다.
- MD5 해시를 사용하여 파일 복사본을 원본과 비교하는 것이 두 복사본의 데이터를 일일이 확인하는 것보다 훨씬 쉽기 때문이다.
양방향 암호화
양방향 암호화는 데이터를 암호화(Encryption)하여 보호하고, 복호화(Decryption)를 통해 원래 데이터를 복원할 수 있는 방식입니다. 암호화/복호화 키의 사용 방식에 따라 대칭키 방식과 비대칭키 방식으로 나뉜다.
대칭키 암호화 (Symmetric Encryption)
- 암호화와 복호화에 하나의 동일한 키를 사용.
- 속도가 빠르고 구현이 간단하나, 키를 안전하게 공유해야 하는 키 분배 문제가 발생합니다.
특징
- 양방향 암호화 중 속도가 가장 빠름.
- 키가 노출되면 암호화된 데이터를 해독할 수 있음.
대표적인 대칭키 알고리즘
- AES (Advanced Encryption Standard)
- 현재 가장 널리 사용되는 대칭키 암호화 알고리즘.
- 키 길이: 128비트, 192비트, 256비트를 지원.
- 특징:
- 속도가 빠르고 보안성이 뛰어남.
- 군사, 금융, IoT 등 다양한 분야에서 표준으로 사용.
- DES (Data Encryption Standard)
- 한때 널리 사용되었지만, 56비트 키의 보안 취약점 때문에 현재는 잘 사용되지 않음.
- Blowfish
- 빠르고 유연하며 오픈 소스 환경에서 주로 사용.
비대칭키 암호화 (Asymmetric Encryption)
- 암호화와 복호화에 서로 다른 두 개의 키를 사용
- 공개키 (Public Key): 누구나 사용할 수 있도록 공개.
- 개인키 (Private Key): 비공개로 소유.
- 키 공유 문제를 해결할 수 있어 인터넷 보안, 디지털 서명, 전자 거래 등에 널리 사용.
특징
- 대칭키 암호화보다 속도는 느리지만, 보안성이 높음.
- 사용 사례: SSL/TLS, 전자 서명, 암호화된 메시지 전달.
대표적인 비대칭키 알고리즘
- RSA (Rivest-Shamir-Adleman)
- 가장 널리 사용되는 비대칭키 알고리즘.
- 2048비트 이상의 키 길이를 사용하여 높은 보안성 제공.
- 사용 사례:
- SSL/TLS 통신(HTTPS 보안).
- 이메일 암호화(PGP).
- ECC (Elliptic Curve Cryptography)
- 짧은 키로도 RSA와 동일한 보안성을 제공.
- 자원 제약이 있는 모바일 기기나 IoT 환경에서 사용.
- DSA (Digital Signature Algorithm)
- 디지털 서명에 특화된 알고리즘.