본문 바로가기
system_fundamentals/security_cryptography

용어정리

by 죄니안죄니 2026. 5. 14.
반응형

현대 보안 시스템은 사실상 아래 3개 축으로 이루어진다.

개념 역할
대칭키 암호화 빠른 데이터 암호화
공개키 암호화 안전한 키 교환/신원 확인
해시 비밀번호 검증/무결성 확인

즉:

"숨기기"
"신뢰하기"
"검증하기"
 

를 각각 담당한다.

목적 

[해시]
= 복원 불가 검증

[대칭키]
= 빠른 양방향 암호화

[공개키/개인키]
= 안전한 키 교환 + 서명
 

사용예

서버 공개키 공개
↓
클라이언트가 AES 세션키 암호화
↓
공개키 기반 세션키를 서버에게 전달
↓
서버 개인키로 복호화 (공개키 암호암호는 처음 안전한 연결을 만들 때 사용)
 

대칭키 ↔ 양방향 암호화 (암호화키 = 복호화키) ex. AES / 특징: 빠름 -> HTTPS실데이터, 파일암호화, VPN, 메신저 / 의문: 이 내용을 어떻게 전달할 것인가 -> 공개키 개인키 안전한 키 교환
공개키는 암호화만을 위한거니까 비대칭키 암호이고 개인키와 쌍을 이룸 (공개키로 암호화, 개인키로 복호화) ex. RSA ECC / 특징: 엄청느림 -> 공개키는 키교환 전용이고, AES는 실제 데이터 처리에 사용
해시는 "검증" ↔ 단방향 해시 (해시는 암호화가 아니므로 복호화 개념 자체가 없음) 같은 값인지 비교 검증은 가능 ex. 비밀번호 저장방식, 무결성검증 - 파일checksum, 전자서명, Git commit hash (*salt같이사용 표준) ex.SHA-256 bcrypt Argon2
 

라고 이해하는 게 가장 정확하다.

  대칭키 공개키 (비대칭키) 해시
  암호화키와 복호화키가 동일
(양방향암호화/복호가능)
공개키가 암호화키
개인키가 복호화키 
암호화개념이 아님. 검증가능
(단방향/복호화불가능)
  빠르지만 안전하지 않음 느림 안전  
  AES RSA ECC  SHA-256 bcrypt Argon2
  HTTPS실데이터, 파일, VPN, 메신저 키교환 전용 비밀번호 저장방식
무결성검증 - 파일checksum, 전자서명, Git commit hash


헷갈리는 이유
공개키 암호가 대칭키를 전달하는 역할을 함(중요)

공개키와 해시가 합쳐지면 나오는 개념
전자서명

 


먼저 용어를 정확히 구분해야 함

개념 목적
암호화(Encryption) 다시 복원 가능
해시(Hash) 원래 값 복원 불가. 검증만 가능

1. 대칭키 암호화 = 양방향

대표:

  • Advanced Encryption Standard

특징:

암호화 가능
복호화 가능
 

즉:

원본 → 암호문 → 원본
 

복원이 가능하다.

왜냐면 목적이:

데이터를 숨긴 뒤 나중에 다시 사용
 

이기 때문이다.

예:

  • HTTPS
  • 파일 암호화
  • 메신저
  • DB 컬럼 암호화

예시

주민번호
↓ AES 암호화
X8A2...
↓ 복호화
주민번호 원복
 

즉 “되돌릴 수 있어야” 한다.


2. 비밀번호 저장은 완전히 다름

비밀번호는 원래:

복호화하면 안 된다
 

가 핵심이다.

왜냐면 서버가 사용자 비밀번호를 알 필요가 없기 때문이다.


그래서 해시(Hash)를 사용

대표:

  • bcrypt
  • Argon2
  • PBKDF2

해시는 단방향

H(x)H(x)

즉:

비밀번호
↓
해시값
 

은 가능하지만,

해시값
↓
원래 비밀번호
 

는 원칙적으로 불가능하다.


실제 로그인 구조

회원가입:

mypassword123
↓
bcrypt
↓
$2a$10$......
 

DB에는 해시만 저장한다.


로그인:

입력 비밀번호
↓
같은 해시 함수 적용
↓
DB 해시와 비교
 

한다.


서버도 원래 비밀번호를 모름

이게 핵심이다.

즉:

운영자도 원래 비밀번호를 몰라야 정상
 

이다.

그래서:

"비밀번호 찾기"
 

에서 원래 비밀번호 보여주면 위험 신호다.

정상 시스템은:

비밀번호 재설정
 

만 가능해야 한다.


왜 비밀번호를 AES로 저장하면 위험할까?

예:

비밀번호
↓ AES 암호화
암호문 저장
 

이면 서버가 AES 키를 갖고 있다.

즉:

키 유출
=
전체 비밀번호 원복 가능
 

이다.

그래서 비밀번호 저장에는 암호화보다 해시를 사용한다.


단방향이지만 “검증”은 가능

재밌는 점은:

복호화는 안 되는데,
같은 값인지 비교는 가능
 

하다.

예:

입력:
hello123

해시:
ABCDEF
 

로그인 시 다시:

hello123
→ ABCDEF
 

가 나오면 같은 비밀번호라고 판단한다.


그런데 SHA-256만 쓰면 위험

왜냐면 GPU로 너무 빠르게 대입 가능하다.

그래서 비밀번호 저장은 일부러 느린:

  • bcrypt
  • Argon2

같은 걸 사용한다.


bcrypt/Argon2 특징

일부러:

  • 느리게
  • 메모리 많이 쓰게
  • 병렬화 어렵게

설계했다.

즉 공격자가:

수십억 개 대입
 

하기 어렵게 만든다.


그래서 실무에서는 목적이 다름

목적 방식
데이터 보호 후 복원 필요 AES 암호화
비밀번호 검증만 필요 해시(bcrypt/Argon2)

쉽게 비유하면

AES

자물쇠
 

같다.

열쇠 있으면 다시 연다.


해시

믹서기로 갈아버리는 느낌
 

이다.

원래 재료 복원이 사실상 불가능하다.


핵심 정리

네 표현을 조금 더 정확히 다듬으면:

대칭키 암호화는 "양방향 복원 가능한 보호"
비밀번호 저장은 "단방향 검증용 해시"
 

라고 이해하면 가장 정확하다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

공개키 암호화는 어떻게 가능한가  (0) 2026.05.14
DB 컬럼 암호화 방식  (0) 2026.05.14
파일 암호화 구조  (0) 2026.05.14
스트림 암호 vs 블록 암호  (0) 2026.05.14
IV는 왜 필요한가  (0) 2026.05.14

댓글