서버 일을 하면서 마주칠 수밖에 없던 암복호화인데 봐도 봐도 익숙해지지 않아서 한 번쯤 정리하면 좋겠다고 생각이 들었다.
그래서 암복호화 중 암호화에 대하여 정리해보려고 한다 📚
단방향 암호화
단방향 암호화란?
: 데이터의 무결성을 검증하거나 패스워드와 같은 개인 정보를 저장할 때 사용하는 단방향 해시 함수 기반의 암호화 방식
설명
: 임의의 길이를 가진 데이터를 입력받아 고정된 길이의 해시값을 출력하는 알고리즘
: 수학적인 단방향 함수(One-Way Function)를 사용하여 암호화는 가능하지만 복호화(역연산)는 수학적으로 불가능하도록 설계
: 실제로 사용자의 비밀번호 같은 걸 암호화한 적이 있음 (복호화를 못해서 초기화 시켜봄)
관련 알고리즘 예시
- SHA-256
- SHA-3
- bcrypt
장단점
| 장점 | 단점 |
| - 데이터베이스 침해 사고 발생 시에도 원본 평문(Plaintext)의 유출을 원천적으로 차단 - 데이터 전송 과정에서의 위변조 여부(무결성, Integrity)를 검증하는 데 매우 효율적임 |
- 해커가 사전에 연산해 둔 해시값 테이블 기반의 무작위 대입 공격에 취약할 수 있음 |
양방향 암호화 - 대칭키
양방향 암호화 대칭키란?
: 암호화(Encryption)와 복호화(Decryption)에 동일한 암호키를 사용하는 구조의 암호화 알고리즘
설명
: 데이터를 송신하는 측과 수신하는 측이 사전에 '동일한 비밀키(Shared Secret Key)'를 공유하고 있어야만 통신이 성립되는 방식
: 주로 블록 암호(Block Cipher)나 스트림 암호(Stream Cipher) 형태로 구현
관련 알고리즘 예시
- AES-128 / AES-256
- DES
장단점
| 장점 | 단점 |
| - 암/복호화 연산 처리 속도가 매우 빨라, 대용량 파일이나 스트리밍 데이터 등 Payload가 큰 통신에 적합 - 비대칭키 대비 동일한 보안 강도를 유지하면서도 키 길이가 짧고 시스템 리소스 소모가 적음 |
- 송수신자가 안전하게 동일한 키를 교환해야 하는 키 분배 문제(Key Distribution Problem)가 존재 - 네트워크에 참여하는 노드 수가 증가할수록 관리해야 할 키의 개수가 기하급수적으로 증가 |
양방향 암호화 - 비대칭키
양방향 암호화 비대칭키란?
: 대칭키의 '키 분배 문제'를 소인수분해나 이산로그 문제 등 풀기 어려운 수학적 난제를 활용해 해결한 암호화 방식
설명
: 한 쌍(Pair)으로 이루어진 공개키(Public Key)와 개인키(Private Key)를 생성하여 통신에 활용
: 공개키는 네트워크 상에 누구에게나 배포하며, 개인키는 소유자가 시스템 내부에 안전하게 보관
: 송신자가 수신자의 '공개키'로 데이터를 암호화하여 전송하면, 해당 데이터는 수신자가 보유한 유일한 '개인키'로만 복호화할 수 있음
관련 알고리즘 예시
- RSA
- ECC
장단점
| 장점 | 단점 |
| - 수신자의 공개키만 획득하면 되므로 통신 전 별도의 안전한 비밀키 교환 과정이 필요하지 않음 - 송신자의 신원 확인(Authentication) 및 전송 사실 부인 방지(Non-repudiation) 기능을 제공 |
- 대칭키 암호화 방식에 비해 수학적 연산이 매우 복잡하여 암/복호화에 소요되는 CPU 오버헤드가 큼 - 대칭키와 동등한 보안 수준을 확보하기 위해 상대적으로 훨씬 더 긴 비트(bit) 수의 키가 요구됨 |
하이브리드 암호화
하이브리드 암호화란?
: 대칭키 암호화의 '높은 연산 처리량'과 비대칭키 암호화의 '안전한 키 교환 능력'을 결합한 실무적 표준 아키텍처
설명
: 네트워크 프로토콜 상에서 대용량 데이터 전송의 효율성을 챙기면서도, 초기 세션 수립 단계에서의 보안 취약점을 해결하기 위해 설계된 혼합형 접근 방식
: 통신 초기 설정 단계에서 클라이언트와 서버는 비대칭키 알고리즘(또는 Diffie-Hellman 방식)을 사용하여 안전하게 '마스터 시크릿(Master Secret)'을 교환
: 교환된 마스터 시크릿을 기반으로 양측은 동일한 '세션 키(대칭키)'를 파생시켜 생성해. 이후 실제 Application Payload(HTTP 데이터 등)는 이 세션 키를 활용하여 고속의 대칭키 알고리즘(예: AES)으로 암호화하여 통신
관련 알고리즘 예시
- PGP (이메일 및 파일 보안)
- TLS/SSL (인터넷 웹 보안 표준)
장단점
| 장점 | 단점 |
| - 비대칭키의 안전한 인증/키 분배 메커니즘과 대칭키의 빠른 데이터 처리 성능을 모두 확보할 수 있음 - 클라이언트와 서버 환경 모두에서 암호화 오버헤드를 최소화하며 무결성과 기밀성을 보장하는 현대 보안의 표준 |
- 초기 통신 수립(Handshake) 과정에서 여러 번의 RTT(Round Trip Time)가 발생하여 지연시간이 증가함 - 두 가지 암호화 체계와 인증서(Certificate) 검증 로직까지 모두 시스템 내에 구현하고 유지 관리가 필요 |
'CODING STUDY > 개발 지식 창고📚' 카테고리의 다른 글
| [아키텍처] 카프카(Kafka)의 기본 개념부터 최신 KRaft까지 (2) | 2026.02.24 |
|---|---|
| [Docker Desktop] docker desktop 설치 방법 및 컨테이너 만들기 (0) | 2026.02.10 |
| [Test] TDD와 회귀 테스트에 대한 비교 및 정리 (0) | 2026.02.05 |
| [Gemini CLI] Gemini CLI 고급 설정 & Hooks 활용 (심화편) (0) | 2026.02.03 |
| [Gemini CLI] Gemini CLI 실전 사용 가이드 (기본편) (0) | 2026.01.29 |