본문 바로가기
system_fundamentals/security_cryptography

공개키 암호화는 어떻게 가능한가

by 죄니안죄니 2026. 5. 14.
반응형
공개키 암호화공개키 암호화공개키 암호화
 
 
 

이건 암호학에서 가장 신기한 부분인데, 핵심은:

"잠그는 건 쉬운데,
푸는 건 특정 정보 없이는 매우 어려운 수학"
 

를 이용한다는 거야.

즉 공개키 암호는:

한 방향 계산은 쉽고,
역방향 계산은 매우 어려운 문제
 

위에 만들어진다.


가장 대표적인 게 RSA

RSA cryptosystem 기준으로 설명할게.


먼저 목표

원하는 건 이런 거다:

공개된 키로는 암호화 가능
하지만
개인키 없이는 복호화 불가
 

어떻게 그게 가능하냐?

RSA는:

소인수분해의 어려움
 

을 이용한다.


STEP 1 — 아주 큰 소수 2개 선택

예:

p = 큰 소수
q = 큰 소수
 

STEP 2 — 둘을 곱함

n=p×q

예:

17 × 23 = 391
 

중요한 특징

곱하는 건 쉽다.

하지만:

391만 보고
17 × 23 찾기
 

는 더 어렵다.


실제 RSA는 엄청 큰 수 사용

실제로는:

2048bit 이상
 

이라 사실상 현재 컴퓨터로 분해가 매우 어렵다.


STEP 3 — 공개키 생성

공개키는 보통:

(e,n)

형태.

여기서:

  • n = 공개
  • e = 공개

STEP 4 — 개인키 생성

개인키는:

(d,n)

여기서 d는:

p와 q를 알아야 계산 가능
 

하다.


암호화

평문 M을:

C = M^e mod n

로 암호화한다.


복호화

암호문 C를:

M = C^d mod n

로 복호화한다.


왜 이게 동작할까?

이건 수학적으로:

특정 mod 연산 성질
 

때문이다.

정확히는:

  • 오일러 정리
  • 모듈러 산술

위에 기반한다.


핵심 직관

공개키로는:

앞 방향 계산
5^3 mod 13 = 8
 

만 쉽다. 

하지만 역으로 풀려면:

개인키 d 필요
"5를 몇 번 제곱해야 8이 되나?"
 

하다.

그리고 d 계산하려면:

원래 소수 p,q 알아야 함
 

그런데 공개된 건 n뿐

즉 공격자는:

n = p × q
 

만 본다.


문제는 여기서

엄청 큰 n
→
원래 p,q 찾기
 

가 현실적으로 매우 어렵다.


이걸 Trapdoor Function이라고 함

Trapdoor function

특징:

방향 난이도
정방향 쉬움
역방향 매우 어려움

비유하면

재료 섞어서 케이크 만들기는 쉬움
근데 케이크 보고 원재료 정확히 복원은 어려움
 

느낌.


공개키 암호가 혁명적이었던 이유

원래 대칭키만 있던 시절엔:

"키를 어떻게 안전하게 전달?"
 

문제가 있었다.


공개키 암호 등장 후

공개키는 공개
개인키만 비밀
 

구조가 가능해졌다.

즉 처음 만나는 상대와도 안전한 통신 가능.


그런데 왜 RSA가 느릴까?

문제는:

M^e mod n

같은 계산이 엄청 무겁다.

즉:

  • 큰 정수 연산
  • 거대한 거듭제곱
  • mod 반복

이라 CPU 부담이 크다.


그래서 실제 인터넷은

RSA/ECC
→ AES 키 교환만
 

하고,

이후 실제 데이터는:

AES-GCM
 

으로 처리한다.


ECC는 뭐가 다르냐?

요즘은 RSA 대신:

  • Elliptic-curve cryptography

많이 사용.


이유

ECC는:

더 작은 키로
같은 보안성
 

제공 가능.

그래서 모바일/HTTPS/TLS 1.3에서 매우 많이 사용된다.


핵심 요약

공개키 암호화가 가능한 이유는:

"계산은 쉽지만,
거꾸로 푸는 건 극도로 어려운 수학 문제"
 

를 이용하기 때문이다.

RSA는 특히:

큰 수 소인수분해의 어려움
 

위에서 동작한다.

신뢰 문제와 암호화

현대 인터넷의 핵심 문제는 사실 단순하다.

"상대를 믿을 수 없는 환경에서
어떻게 안전하게 통신할 것인가?"
 

이 문제를 해결하기 위해 등장한 기술이 바로 암호화다.


1. 인터넷은 기본적으로 신뢰할 수 없는 환경

인터넷은:

  • 공개 네트워크
  • 수많은 중간 경유지
  • 누구나 접근 가능
  • 공격자도 동일 네트워크 사용

이라는 특징을 가진다.

즉 데이터는:

내 PC → 공유기 → ISP → 중간 라우터 → 서버
 

처럼 여러 장비를 거쳐 이동한다.

문제는 이 과정에서:

  • 누군가 데이터를 볼 수도 있고
  • 변조할 수도 있고
  • 가짜 서버로 위장할 수도 있다는 것

이다.


2. 신뢰 문제는 인터넷 전체에 존재한다

인터넷에서 가장 어려운 건:

"지금 통신 중인 상대가 진짜인가?"
 

를 증명하는 것이다.

예를 들어:

  • 진짜 은행 서버인가?
  • 진짜 회사 API인가?
  • 중간 공격자가 위장한 서버는 아닌가?

를 알기 어렵다.


3. 암호화 이전의 인터넷은 매우 위험했다

초기 HTTP는 평문 통신이었다.

예:

 
POST /login

id=admin
password=1234
 

이 데이터가 그대로 네트워크를 이동했다.

즉 중간에서 패킷을 캡처하면:

아이디와 비밀번호를 그대로 볼 수 있었다
 

4. 암호화는 "신뢰를 수학적으로 만드는 기술"

많은 사람들이 암호화를 단순히:

데이터 숨기기
 

정도로 생각한다.

하지만 실제 본질은 더 크다.

암호화는:

신뢰를 수학적으로 검증 가능하게 만드는 기술
 

이다.

즉:

  • 누가 보냈는지
  • 중간에 바뀌지 않았는지
  • 진짜 서버인지
  • 데이터가 안전한지

를 수학적으로 증명한다.


5. 암호화가 해결하는 신뢰 문제

암호화는 크게 3가지 문제를 해결한다.


1) 기밀성 — 남이 못 보게

예:

  • HTTPS
  • VPN
  • AES 암호화

중간 공격자가 데이터를 봐도:

해독할 수 없게 만든다
 

2) 무결성 — 중간 변조 방지

예:

  • Hash
  • HMAC
  • 전자서명

데이터가 조금이라도 바뀌면:

검증 실패
 

가 발생한다.


3) 인증 — 진짜 상대인지 확인

예:

  • TLS 인증서
  • 공개키 암호화
  • CA(Certificate Authority)

서버가:

"나는 진짜 네이버 서버다"
 

를 증명한다.


6. HTTPS는 신뢰 문제 해결 시스템이다

HTTPS는 단순 암호화가 아니다.

실제로는:

  • 공개키 암호화
  • 대칭키 암호화
  • 전자서명
  • 인증서
  • Hash
  • 키교환

이 모두 합쳐진:

인터넷 신뢰 시스템
 

에 가깝다.


7. 왜 공개키 암호화가 혁명적이었나

과거에는:

"같은 비밀키를 미리 공유"
 

해야 했다.

문제는 인터넷에서는:

처음 만나는 상대와도 통신해야 한다
 

는 점이다.

공개키 암호화는:

  • 공개키는 공개
  • 개인키는 서버만 보관

하는 방식으로:

처음 보는 상대와도 안전한 통신
 

을 가능하게 만들었다.


8. 결국 현대 인터넷은 "암호화 위에서 동작"

현재 인터넷 서비스 대부분은:

  • 로그인
  • 결제
  • API
  • 클라우드
  • 모바일 앱
  • OAuth
  • JWT
  • VPN

전부 암호화 기반이다.

즉 현대 인터넷은 사실상:

암호화가 없으면 성립 불가능한 구조
 

라고 봐도 된다.


9. Zero Trust 보안 철학도 같은 맥락

현대 보안은:

아무도 기본적으로 믿지 않는다
 

를 전제로 한다.

즉:

  • 내부망도 신뢰하지 않고
  • 사용자도 신뢰하지 않고
  • 요청도 신뢰하지 않고
  • 패킷도 신뢰하지 않는다

그래서 모든 요청에 대해:

  • 인증
  • 검증
  • 서명 확인
  • 암호화

를 수행한다.


10. 암호화의 본질

결국 암호화의 핵심은:

신뢰할 수 없는 환경에서
신뢰를 만드는 것
 

이다.

그리고 현대 인터넷은:

수학적 신뢰 위에 구축된 시스템
 

이라고 볼 수 있다.

 

 

 

🔗 보안_암호학 목차로 

반응형

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

RSA가 느린 이유  (0) 2026.05.14
RSA 원리  (0) 2026.05.14
DB 컬럼 암호화 방식  (0) 2026.05.14
용어정리  (0) 2026.05.14
파일 암호화 구조  (0) 2026.05.14

댓글