Digital Signature 전자서명 원리

agnusdei·2025년 5월 29일

✅ 디지털 서명 (Digital Signature)


🔷 1. 개념 정의

**디지털 서명(Digital Signature)**은
전자 문서의 **무결성(Integrity)**과 **서명자의 신원(인증, Authentication)**을 보장하기 위해
공개키 기반(PKI: Public Key Infrastructure) 암호기술을 이용하여 생성된 전자적 서명 정보입니다.

즉, 문서가 변경되지 않았고, 누가 서명했는지를 수학적으로 증명하는 전자 서명 방식입니다.


🔷 2. 목적

목적설명
무결성 (Integrity)서명된 문서가 위·변조되지 않았음을 증명
인증 (Authentication)문서를 서명한 주체가 누구인지 증명
부인 방지 (Non-repudiation)서명자가 나 아니라고 발뺌할 수 없게 만듦

🔷 3. 디지털 서명 동작 원리 (※ 핵심 부분)

디지털 서명의 핵심은 해시 + 비대칭 암호화 조합입니다.

▶ 흐름도

[송신자 A]                         [수신자 B]

1. 문서 생성
    ↓
2. 해시 생성 (H = Hash(문서))
    ↓
3. 서명 생성 (S = Encrypt(H, A의 개인키))
    ↓
4. 문서 + 서명 전송 ─────────────→

                              ↓
                      수신자가 복호화 및 확인
5. H' = Hash(수신한 문서)
6. Decrypt(S, A의 공개키) → H''
7. H'와 H'' 비교

    ⇒ 같으면 유효한 서명

▶ 자세한 단계 설명

(1) 송신 측: 디지털 서명 생성

  1. 원본 문서 작성
    예: "계약서 내용 A"

  2. 해시 생성

    • SHA-256, SHA-3 등 해시 알고리즘 사용
    • H = Hash(문서) → 고정 길이의 해시값 생성
  3. 개인키로 암호화

    • S = Encrypt(H, 개인키)
    • 해시값을 송신자의 **개인키(Private Key)**로 암호화하여 서명 생성
  4. 원본 문서 + 서명(S) 전송


(2) 수신 측: 서명 검증

  1. 원본 문서로 해시값 계산

    • H' = Hash(문서 수신본)
  2. 공개키로 서명 복호화

    • H'' = Decrypt(S, 공개키)
    • 서명 S를 송신자의 **공개키(Public Key)**로 복호화하여 해시값 복원
  3. 두 해시값 비교 (H' == H'')

    • 같으면: 위·변조 없음 + 서명자 인증 성공
    • 다르면: 문서 위조 or 서명 위조

🔷 4. 구조 및 기술요소

구성요소설명
해시 함수SHA-256, SHA-3 등. 문서를 고정 길이로 압축
비대칭 키 쌍RSA, DSA, ECDSA 등. 개인키 ↔ 공개키 사용
서명 생성기해시값을 개인키로 암호화
서명 검증기공개키로 복호화한 해시와 수신 문서 해시 비교

🔷 5. 특징

항목설명
비대칭 키 사용개인키로 서명, 공개키로 검증
데이터 무결성문서 변경 여부 탐지 가능
인증성 확보공개키가 특정 사용자와 연결되어 있음 (인증서 기반)
부인 방지개인키로 생성된 서명은 서명자 외 생성 불가

🔷 6. 적용 사례

분야적용 예시
전자정부전자문서, 공문, 전자세금계산서 등
금융전자계약, 송금 서명, 블록체인 트랜잭션
소프트웨어SW 배포 파일에 서명 (예: .exe, .apk 등)
인증서SSL/TLS, 공인인증서 등

🔷 7. 장단점

구분장점단점
보안성위조 및 변조 방지개인키 유출 시 보안 위협
신뢰성인증된 사용자만 서명 가능서명 생성 속도 느림
법적 효력법률상 전자서명으로 효력 인정 가능구현이 복잡할 수 있음

👦 어린이 요약

디지털 서명은 전자 문서에 도장을 찍는 방법이에요.
A가 문서에 자기만의 비밀번호(개인키)로 도장을 찍고,
B는 A의 도장을 확인해서 "진짜 A가 보낸 거네!",
그리고 "문서도 안 바뀌었네!" 하고 믿을 수 있어요.


✅ 결론 요약

  • 디지털 서명은 해시 함수 + 개인키 암호화 조합으로 이루어짐
  • 서명자는 문서 요약본(해시값)을 자신의 개인키로 암호화하여 전송
  • 수신자는 문서를 다시 해시하고, 공개키로 복호화한 해시값과 비교해 위·변조 여부와 발신자를 확인
  • 무결성, 인증, 부인방지라는 3대 보안 속성을 만족시켜
    전자거래, 인증서, 금융, 블록체인 등 다양한 분야에서 핵심 기술로 사용됨

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글