오늘 끝나면
디지털 서명
- ✓디지털 서명의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 디지털이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
내가 보냈다는 증명, 위조 불가 — 공개키를 거꾸로 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 08
디지털
서명
공개키를 거꾸로 쓰면 위조 불가 서명이 됨. 내가 보냈고 한 글자도 안 고쳐졌음을 증명함.
암호화는 잠그기, 서명은 그 반대
7강에서 배움. 암호화는 공개키로 잠그고 개인키로 푼다. 누구나 잠글 수 있지만, 푸는 건 개인키 주인뿐임.
서명은 방향이 정반대임. 개인키로 서명하고, 공개키로 검증함. 만드는 건 나만, 확인은 누구나 가능함.
같은 자물쇠 한 쌍을 반대로 쓴 것뿐임. 잠그기에 쓰면 비밀유지, 서명에 쓰면 신원 증명이 됨.
개인키는 나만 가진 도장
왜 이게 위조가 안 되나? 개인키는 세상에서 나 하나만 갖고 있기 때문임.
그 개인키로 만든 서명은 나만 만들 수 있음. 도장 원본을 나만 가진 것과 같음. 남이 흉내 내려면 내 개인키가 있어야 하는데, 그건 못 구함.
반대로 공개키는 누구에게 뿌려도 됨. 그걸로는 검증만 됨. 확인은 되지만 새 서명은 못 만듦. 그래서 안전함.
| 주체 | 서명 | 검증 |
|---|---|---|
| 개인키 (나)서명 만들기 + 검증 | ✓ | ✓ |
| 공개키 (모두)검증만 가능 | ✗ | ✓ |
| 공격자위조 불가 | ✗ | ✓ |
직접 서명하고 검증해 보기
오른쪽에서 직접 해봄. 메시지를 적고 [개인키로 서명] 누르면 서명값이 나옴.
그 다음 [공개키로 검증] 누르면 유효(파랑) 뱃지가 뜸. 진짜 그 사람이 보냈고 안 고쳐졌다는 뜻임.
이제 메시지를 1글자만 바꿔봄. 검증이 바로 무효(빨강)로 깨짐. 한 글자 변조도 즉시 잡힘.
먼저 개인키로 서명하셈. 그 다음 메시지를 1글자 고치고 검증해 보셈.
한 글자만 바뀌어도 서명이 깨진다
어떻게 한 글자 변조까지 잡나? 비결은 해시임. 메시지 전체를 짧은 숫자 하나로 요약함.
글자가 하나만 바뀌어도 그 숫자가 완전히 달라짐. 서명은 원본의 해시에 묶여 있음. 내용이 바뀌면 검증할 때 숫자가 안 맞아 무효가 됨.
정리하면 서명은 두 가지를 한꺼번에 증명함. 누가 보냈나(개인키) 와 안 바뀌었나(해시). 둘 다 맞아야 유효임.
100만원 보냄
해시 = 1304
200만원 보냄
해시 = 2026
1 → 2 한 글자 바뀌니 해시가 전부 달라짐 → 서명 깨짐
서명이 보장하는 것, 못 하는 것
서명은 만능이 아님. 보장하는 게 정확히 둘임. 인증과 무결성.
인증은 누가 보냈는지, 무결성은 내용이 안 바뀌었는지임. 근데 서명은 내용을 가려주진 않음. 메시지 자체는 누구나 그대로 읽을 수 있음.
비밀유지는 암호화의 몫임. 둘은 따로 노는 도구임. 실제 시스템은 보통 서명 + 암호화를 같이 씀.