본문 바로가기
system_fundamentals/security_cryptography

전자서명 원리

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

 

전자서명 원리전자서명 원리전자서명 원리
 
 
 

전자서명(Digital signature)은 한 줄로 말하면:

"이 데이터는 진짜 내가 만들었고,
중간에 변조되지 않았다"
 

를 증명하는 기술이다.


먼저 중요한 점

전자서명은:

암호화가 목적이 아니다
 

즉:

  • 비밀 숨기기 ❌
  • 진짜 작성자 증명 ⭕

이다.


핵심 역할 2개

전자서명은:

역할 의미
인증(Authentication) 진짜 그 사람이 만든 것
무결성(Integrity) 중간에 안 바뀜

을 보장한다.


어떻게 가능하냐?

핵심은:

해시 + 개인키
 

조합이다.


전체 흐름 먼저

문서
↓
해시 생성
↓
해시를 개인키로 서명
↓
전자서명 생성
 

STEP 1 — 문서 해시

문서를 해시한다.

h = H(m) 

예:

"HELLO"
↓
A1B2C3...
 

왜 해시를 쓰나?

문서 전체를 직접 서명하면:

  • 너무 느림
  • 데이터 큼

그래서:

문서 요약본(hash)
 

만 사용한다.


STEP 2 — 개인키로 서명

여기서 핵심.

그 해시를:

개인키로 처리
 

한다.

RSA 기준 느낌:

S = h^d mod n


결과

전자서명(signature)
 

생성.


STEP 3 — 문서 + 서명 전송

상대방에게:

문서
+
전자서명
 

보낸다.


STEP 4 — 검증

받은 사람은:

문서 다시 해시

h_1 = H(m)


공개키로 서명 검증

RSA 느낌:

h_2 = S^e mod n


비교

h1 == h2
 

면 검증 성공.


의미

검증 성공했다는 건:

1. 개인키 가진 사람이 만들었고
2. 내용이 안 바뀌었다
 

는 뜻이다.


왜 위조가 어려운가?

전자서명 위조하려면:

개인키 필요
 

하다.

근데 개인키는 본인만 갖고 있다.


왜 변조 검출 가능한가?

문서가 한 글자만 바뀌어도:

해시 완전 변경
 

된다.

즉:

원본 해시 ≠ 현재 해시
 

되어 검증 실패.


쉽게 비유하면

해시

문서 지문
 

개인키

본인 도장
 

공개키

도장 진위 확인 도구
 

암호화와 차이 매우 중요

방식 목적
공개키로 암호화 비밀 보호
개인키로 서명 작성자 증명

실제 HTTPS에서 사용

HTTPS 인증서도 전자서명 기반이다.

예:

  • Let's Encrypt
  • DigiCert

같은 CA가:

"이 공개키는 진짜 네이버 것"
 

이라고 전자서명한다.

브라우저는 공개키로 검증한다.


코드 서명도 동일

예:

  • Windows exe
  • Android APK
  • iOS 앱

전부 전자서명 사용.


Git도 비슷한 개념 가능

GPG 서명 commit:

"진짜 이 개발자가 작성"
 

증명 가능.


핵심 한 줄

전자서명은:

문서의 해시를 개인키로 서명하고,
상대방이 공개키로 검증해서
작성자와 무결성을 증명하는 기술
 

이다.

반응형

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

RBAC  (0) 2026.05.15
인증과 인가 차이  (0) 2026.05.15
DH / ECDHE  (0) 2026.05.14
ECC는 왜 RSA를 대체하는가  (0) 2026.05.14
RSA가 느린 이유  (0) 2026.05.14

댓글