본문 바로가기
CODING STUDY/개발 지식 창고📚

[보안] 개발에 쓰이는 암호화 방식 정리 (단방향, 대칭키, 비대칭키, PGP)

by 놀고 쉬고 싶은 개발자 2026. 4. 21.

서버 일을 하면서 마주칠 수밖에 없던 암복호화인데 봐도 봐도 익숙해지지 않아서 한 번쯤 정리하면 좋겠다고 생각이 들었다.

그래서 암복호화 중 암호화에 대하여 정리해보려고 한다 📚

 

단방향 암호화

단방향 암호화란? 

: 데이터의 무결성을 검증하거나 패스워드와 같은 개인 정보를 저장할 때 사용하는 단방향 해시 함수 기반의 암호화 방식

 

설명

: 임의의 길이를 가진 데이터를 입력받아 고정된 길이의 해시값을 출력하는 알고리즘

: 수학적인 단방향 함수(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) 검증 로직까지 모두 시스템 내에 구현하고 유지 관리가 필요