# 디지털 서명 (Digital Signature)

디지털 서명(Digital Signature)은 서명자가 자신만 가진 개인 키로 메시지(정확히는 메시지의 해시값)에 대해 계산한 값입니다. 짝이 되는 공개 키를 가진 사람은 누구나 이 값으로 두 가지를 확인할 수 있습니다. 하나는 해당 개인 키를 가진 사람이 서명했다는 것이고, 다른 하나는 서명 이후 메시지가 한 글자도 바뀌지 않았다는 것입니다.

## 자세히 알아보기

디지털 서명 방식은 세 단계로 이루어집니다. 먼저 키 생성 단계에서 수학적으로 연결된 개인 키와 공개 키 한 쌍을 만듭니다. 서명 단계에서는 메시지를 해시 함수에 넣어 고정 길이의 요약값을 구하고, 개인 키로 이 해시값에 대한 서명 값을 계산합니다. 검증 단계에서는 받은 사람이 같은 해시 함수로 메시지의 해시값을 다시 구한 뒤, 서명 값과 공개 키를 함께 넣어 검증 알고리즘을 실행합니다. 결과가 유효하면 서명이 맞는 것입니다.

변조를 알아내는 근거는 해시값입니다. 서명 후 문서가 조금이라도 바뀌면 해시값이 완전히 달라지므로, 원래 해시값에 대해 만든 서명은 검증을 통과하지 못합니다. 개인 키를 모르는 사람은 바뀐 문서에 맞는 새 서명을 만들 수 없습니다. 서명 자체에는 시각 정보가 꼭 들어가지 않습니다. 언제 서명했는지를 증명해야 할 때는 신뢰할 수 있는 시점 확인(타임스탬프) 서비스를 따로 씁니다.

디지털 서명을 흔히 "개인 키로 암호화한다"고 설명하지만, 이는 RSA에서 나온 비유일 뿐입니다. ECDSA나 EdDSA 같은 방식은 암호화 연산이 아니며, 서명은 문서 내용을 숨기지도 않습니다. 미국 표준 FIPS 186-5(2023년)는 RSA, ECDSA, EdDSA를 승인된 서명 방식으로 정하고 있습니다. 디지털 서명이 주는 성질은 보통 인증(누가 서명했는가), 무결성(바뀌지 않았는가), 부인 방지(서명 사실을 부인하기 어려운가) 세 가지로 정리합니다. 다만 부인 방지는 개인 키가 서명자 한 사람에게만 있다는 전제 위에서만 성립하므로, 키가 유출되면 이 성질도 사라집니다. 법적으로도 효력이 인정됩니다. 한국 전자서명법은 전자서명이 전자적 형태라는 이유만으로 서명, 서명날인 또는 기명날인으로서의 효력이 부인되지 않는다고 정하고 있습니다(제3조). 법률상 전자서명은 암호 기술로 만든 디지털 서명보다 넓은 개념이며, 2020년 12월 개정법 시행으로 공인인증서 제도는 폐지되었습니다.

## 블록체인·암호화폐에서는

비트코인과 이더리움에서 트랜잭션을 보낸다는 것은 곧 서명한다는 뜻입니다. 두 네트워크는 secp256k1 타원곡선 위의 ECDSA를 사용하며, 노드는 서명이 해당 주소의 공개 키와 맞는지 확인한 뒤에만 트랜잭션을 받아들입니다. 비트코인은 2021년 11월 탭루트(Taproot) 업그레이드로 BIP-340 슈노르(Schnorr) 서명을 추가했습니다. 슈노르 서명은 64바이트로 짧고, 여러 서명자의 키를 하나로 합치는 다중 서명 방식에 쓰기 좋습니다.

이 구조 때문에 블록체인에서는 개인 키를 가진 사람이 곧 자산을 움직일 수 있는 사람입니다. 개인 키가 유출되면 누구든 정상 서명을 만들 수 있고, 네트워크는 이를 본인의 서명과 구별하지 못합니다. 소프트웨어 배포에서도 같은 원리로, 개발자가 프로그램에 서명해 두면 사용자는 파일이 실제로 그 개발자에게서 왔고 중간에 바뀌지 않았는지 확인할 수 있습니다.

## 쉽게 말하면

인감도장과 인감증명서에 견줄 수 있습니다. 도장(개인 키)은 본인만 보관하고, 증명서(공개 키)는 누구나 볼 수 있어 찍힌 도장이 맞는지 대조할 수 있습니다. 차이도 있습니다. 디지털 서명은 문서 내용에 따라 값이 매번 달라지므로, 한 문서의 서명을 오려 다른 문서에 붙이면 검증을 통과하지 못합니다.

---
출처: https://achivx.kr/glossary/digital-signature-%EB%94%94%EC%A7%80%ED%84%B8-%EC%84%9C%EB%AA%85/ · ACHIVX 용어 사전 · 수정일 2026-10-20
