본문 바로가기
카테고리 없음

키 교환이란 무엇인가

by 죄니안죄니 2026. 5. 14.
반응형
키 교환이란 무엇인가키 교환이란 무엇인가키 교환이란 무엇인가
 
 
 

키 교환(Key Exchange)은 한 줄로 말하면:

서로 처음 만난 두 사람이
안전하게 같은 대칭키를 만드는 과정
 

이다.


왜 키 교환이 필요할까?

대칭키 암호(AES)는 빠르다.

하지만 문제:

"그 AES 키를 어떻게 상대방에게 안전하게 전달?"
 

이다.


그냥 보내면 안 되나?

예:

클라이언트 → 서버
AES_KEY=ABC123
 

이렇게 보내면:

중간 감청자
 

가 키를 보면 끝이다.

이후 모든 통신 복호화 가능.


그래서 필요한 게 키 교환

목표는:

인터넷 중간에서 누가 보고 있어도
둘만 같은 비밀키를 공유
 

하는 것.


핵심 개념

키 교환은:

대칭키를 직접 보내지 않는다
 

가 중요하다.


대표 방식 1 — RSA 기반 키 교환

옛 HTTPS 방식.

STEP 1

서버가 공개키 공개.

SERVER_PUBLIC_KEY
 

STEP 2

클라이언트가 랜덤 AES 키 생성.

SESSION_KEY
 

STEP 3

그 키를:

서버 공개키로 암호화
 

해서 전송.

STEP 4

서버만 개인키로 복호화 가능.

즉 둘만:

같은 AES 키 공유
 

하게 된다.


그런데 현대는 이 방식 잘 안 씀

왜냐면:

Forward Secrecy 문제
 

때문.


문제 상황

만약 미래에:

서버 개인키 유출
 

되면,

예전에 녹음된 통신까지 복호화 가능할 수 있다.


그래서 현재는 Diffie-Hellman 계열 사용

대표:

  • Diffie–Hellman key exchange
  • ECDHE

핵심 아이디어

엄청 신기한데:

중간에서 다 봐도
최종 비밀키는 계산 못 하게
 

만든다.


아주 쉬운 비유

색깔 섞기 비유가 유명하다.

STEP 1 — 공용 색 공개

둘 다 아는 공개 색:

노란색
 

STEP 2 — 각자 비밀 색 추가

클라이언트:

노란색 + 파랑
 

서버:

노란색 + 빨강
 

STEP 3 — 서로 결과 교환

하지만:

원래 비밀 색은 안 알려줌
 

STEP 4 — 다시 자기 비밀색 추가

결과적으로 둘 다:

같은 최종 색
 

완성 가능.


감청자는 왜 못 구하나?

중간에서:

  • 공개 색
  • 중간 결과

는 보지만,

원래 비밀값
 

은 모른다.


실제 수학은?

실제 DH는:

g^a mod p

같은 계산 사용.


클라이언트

비밀값:

a
 

서버

비밀값:

b
 

공개값 교환

클라이언트:

A=g^a  mod p

서버:

B=g^b mod p


최종 계산

클라이언트:

B^a mod p

서버:

A^b mod p


결과가 같아짐

수학적으로:

g^(ab) mod p

가 된다.

즉 둘 다 같은 값을 얻는다.


핵심 포인트

엄청 중요한 건:

AES 키를 직접 전송하지 않았음
 

이다.

그냥:

각자 계산해서
같은 키를 만든 것
 

이다.


ECDHE는 뭐냐?

현재 HTTPS 핵심.

Elliptic-curve Diffie–Hellman

즉:

Diffie-Hellman을
ECC 기반으로 최적화
 

한 것.


왜 현대 HTTPS는 ECDHE 사용?

장점:

  • 빠름
  • 키 작음
  • 모바일 강함
  • Perfect Forward Secrecy 제공

Perfect Forward Secrecy(PFS)

엄청 중요.

뜻:

미래에 서버 개인키 털려도
과거 통신은 안전
 

왜 가능?

세션마다:

일회용 세션키
 

를 새로 만들기 때문이다.


실제 HTTPS 흐름

인증

RSA/ECDSA 인증서로:

"진짜 서버 맞는지"
 

검증.


키 교환

ECDHE로:

세션 AES 키 생성
 

실제 통신

AES-GCM 사용.


핵심 한 줄

키 교환이란:

상대방과 직접 비밀키를 보내지 않고도,
둘만 같은 대칭키를 안전하게 만들어 공유하는 과정
 

이다.

반응형

댓글