테마
05. 디지털 서명
학습 목표
- 디지털 서명의 목적을 설명할 수 있다 (부인방지, 위변조 방지).
- 디지털 서명이 해시 + 개인키 암호화라는 것을 이해한다.
- 서명의 생성 과정과 검증 과정을 설명할 수 있다.
- 왜 해시만으로는 부족하고 개인키 암호화가 필요한지 이해한다.
- 디지털 서명이 인증서에서 어떤 역할을 하는지 감을 잡는다.
전체 구조
1. 서명이 필요한 이유
현실 세계의 서명
계약서에 도장을 찍거나 서명을 하는 이유는 두 가지다.
| 목적 | 의미 | 예시 |
|---|---|---|
| 부인방지 | 행위를 한 사람이 안 했다고 부인할 수 없음 | "계약한 적 없어" → 서명이 있으므로 부인 불가 |
| 위변조 방지 | 내용이 바뀌면 감지 가능 | 계약서 금액을 변조 → 서명 검증으로 발각 |
디지털 세계에서의 문제
인터넷에서는 현실의 도장을 찍을 수 없다. 그래서 디지털 서명이 필요하다.
2. 디지털 서명의 원리
한 줄 요약
디지털 서명 = 문서의 해시를 개인키(Private Key)로 암호화한 것
이것이 전부다. 이 한 줄을 이해하면 디지털 서명의 실체를 아는 것이다.
왜 해시만으로는 부족한가?
해시만 첨부하면, 누군가가 문서를 변조한 뒤 해시를 재계산할 수 있다.
개인키는 나만 갖고 있으므로, 다른 사람은 서명을 만들거나 변조할 수 없다. 이것이 핵심이다.
3. 서명 생성 과정
4. 서명 검증 과정
수신자가 문서를 받으면 다음과 같이 검증한다.
검증의 두 갈래
왜 두 가지를 동시에 증명하는가?
| 검증 결과 | 의미 |
|---|---|
| 해시 일치 | 문서가 서명 시점 이후 변조되지 않았다 (무결성) |
| 공개키로 복호화 성공 | 이 서명은 해당 개인키 소유자만 만들 수 있다 (부인방지) |
5. 디지털 서명 전체 흐름 한눈에 보기
6. 핵심 포인트 정리
개인키로 암호화하는 것이 "서명"이다
일반적인 암호화는 공개키로 암호화, 개인키로 복호화한다 (상대방만 볼 수 있게).
디지털 서명은 그 반대다: 개인키로 암호화, 공개키로 복호화한다.
| 구분 | 일반 암호화 | 디지털 서명 |
|---|---|---|
| 암호화 키 | 공개키 | 개인키 |
| 복호화 키 | 개인키 | 공개키 |
| 목적 | 기밀성 (남이 못 보게) | 인증 (내가 했음을 증명) |
핵심 암기 포인트
디지털 서명의 실체: 문서의 해시를 개인키(Private Key)로 암호화한 것.
서명 생성: 문서 → 해시 → 개인키로 암호화 = 서명.
서명 검증: 공개키로 서명 복호화 → 문서 해시와 비교 → 일치하면 유효.
부인방지: 개인키는 나만 갖고 있으므로, 서명은 나만 만들 수 있다.
위변조 방지: 문서가 변경되면 해시가 달라지므로, 서명 검증에서 불일치.
서명 ≠ 일반 암호화: 서명은 개인키로 암호화, 일반 암호화는 공개키로 암호화.
확인 질문
- "디지털 서명 = 해시 + 개인키 암호화"를 풀어서 설명하라.
- 해시만 첨부하면 왜 부족한가? 개인키 암호화가 추가로 필요한 이유는?
- 디지털 서명이 부인방지를 달성하는 원리를 설명하라.
- 서명 검증 시 두 해시값을 비교하는데, 각각 어디서 오는가?
- 일반 암호화와 디지털 서명에서 공개키/개인키의 역할이 어떻게 다른가?