디지털 서명(Digital Signature)란?

전자 문서가 누구에 의해 만들어졌고 그 후 변조되지 않았는지를 확인하기 위한 기술. 서명하는 사람이 문서의 해시값을 자신의 개인 키로 처리하여 서명을 만들고, 받은 사람은 서명한 사람의 공개 키로 검증한다. 부인 방지에도 사용된다.

일본어 명칭: デジタル署名

디지털 서명(Digital Signature)은(는) 정보 보안 기초 등 1개 분야의 연습 문제 4개에 나와요.

분야: 정보 보안 기초

서명과 검증의 절차

서명하는 사람은 먼저 문서의 해시값을 계산하고, 그것을 자신의 개인 키로 처리하여 서명을 만들어 문서에 붙입니다. 검증하는 사람은 받은 문서로부터 직접 해시값을 계산하고, 서명한 사람의 공개 키를 사용하여 서명이 그 해시값과 대응하는지를 확인합니다. 문서가 1비트라도 바뀌었다면 해시값이 달라지므로 검증은 실패합니다. 개인 키를 갖지 않은 사람은 올바른 서명을 만들 수 없습니다.

확인할 수 있는 것과 확인할 수 없는 것

검증에 성공하면 문서가 개인 키의 소유자에 의해 서명되었다는 것(진정성)과 서명 후에 변경되지 않았다는 것(무결성)을 알 수 있으며, 서명한 사람은 나중에 부인하기 어려워집니다(부인 방지). 한편 디지털 서명은 문서를 암호화하지 않으므로 내용의 비밀은 지킬 수 없습니다. 또한 공개 키가 정말 그 사람의 것인지는 인증 기관(CA)이 발급하는 인증서로 확인해야 합니다.

사용되는 곳

웹사이트의 서버 인증서(TLS), 소프트웨어 배포나 업데이트에 붙이는 코드 서명, 기기가 올바른 소프트웨어만 부팅하는 보안 부팅(secure boot), 전자 계약과 전자 신청, 전자 메일 서명(S/MIME) 등에서 사용되고 있습니다. 대표적인 방식으로 RSA 서명, ECDSA, EdDSA가 있습니다.

도전해 보기: 디지털 서명(Digital Signature) 관련 문제

A 씨가 B 씨에게 보내는 문서에 디지털 서명을 붙인다. 서명의 생성과 검증에 사용하는 키와, 디지털 서명으로 확인할 수 있는 것의 조합으로 올바른 것은?

  1. AA 씨의 개인 키로 서명을 만들고, B 씨는 A 씨의 공개 키로 검증한다. 문서가 A 씨가 만든 것이며 도중에 변조되지 않았음을 확인할 수 있다
  2. BB 씨의 공개 키로 서명을 만들고, B 씨는 자신의 개인 키로 검증한다. 문서의 내용이 제3자에게 읽히지 않음을 확인할 수 있다
  3. CA 씨의 공개 키로 서명을 만들고, B 씨는 A 씨의 개인 키로 검증한다. 문서의 내용이 올바른 사실임을 확인할 수 있다
정답과 해설 보기

정답: A. A 씨의 개인 키로 서명을 만들고, B 씨는 A 씨의 공개 키로 검증한다. 문서가 A 씨가 만든 것이며 도중에 변조되지 않았음을 확인할 수 있다

디지털 서명에서는 서명하는 사람(A 씨)이 문서의 해시값을 자신의 개인 키로 처리하여 서명을 만들고, 문서에 붙여 보냅니다. 받은 B 씨는 A 씨의 공개 키로 서명을 검증하여, 문서에서 계산한 해시값과 대응하는지를 확인합니다. 개인 키를 가진 것은 A 씨뿐이므로, 검증에 성공하면 문서가 A 씨에 의해 서명되었다는 것(진정성)과 서명 후에 1비트도 바뀌지 않았다는 것(무결성)을 알 수 있습니다. 또한 A 씨는 나중에 '서명하지 않았다'고 부인하기 어려워집니다(부인 방지). 다만 그 공개 키가 정말 A 씨의 것인지는 따로 확인해야 하며, 이를 위해 인증서가 사용됩니다. 한편 디지털 서명은 문서를 암호화하지 않으므로 내용을 비밀로 할 수는 없습니다. 비밀로 하고 싶은 경우에는 별도로 암호화를 조합합니다. 또한 서명으로 알 수 있는 것은 누가 서명했는지이며, 적힌 내용이 사실로서 올바른지는 알 수 없습니다.

메시지 인증 코드(MAC)와 디지털 서명을 비교한 설명으로 올바른 것은?

  1. AMAC은 공개 키로 누구나 검증할 수 있으므로 부인 방지 효과가 디지털 서명보다 강하다
  2. BMAC은 송신자와 수신자가 공유하는 대칭 키로 만들므로 변조 검출은 할 수 있지만, 수신자도 같은 MAC을 만들 수 있어 제3자에게 송신자가 만들었음을 증명하는 부인 방지에는 사용할 수 없다
  3. CMAC은 키를 사용하지 않고 해시값을 계산할 뿐이므로, 공격자가 메시지를 바꾼 뒤 MAC을 다시 계산해도 수신자는 알아챌 수 있다
정답과 해설 보기

정답: B. MAC은 송신자와 수신자가 공유하는 대칭 키로 만들므로 변조 검출은 할 수 있지만, 수신자도 같은 MAC을 만들 수 있어 제3자에게 송신자가 만들었음을 증명하는 부인 방지에는 사용할 수 없다

메시지 인증 코드(MAC)는 메시지와 대칭 키로 계산하는 짧은 값으로, 해시 함수를 사용하는 HMAC이 자주 쓰입니다. 수신자는 같은 키로 다시 계산하여 비교하고, 일치하면 키를 아는 상대가 보냈으며 도중에 변조되지 않았음을 알 수 있습니다. 키를 모르는 공격자는 바꾼 메시지에 맞는 올바른 MAC을 만들 수 없습니다. 다만 같은 키를 수신자도 가지고 있으므로 수신자도 MAC을 만들 수 있습니다. 그래서 수신자가 제3자에게 '이것은 송신자가 만든 것이다'라고 증명할 수 없으며, 부인 방지가 되지 않습니다. 디지털 서명은 송신자의 개인 키로만 만들 수 있고 공개 키로 누구나 검증할 수 있으므로 부인 방지에 사용할 수 있습니다. 한편 MAC은 계산이 가벼워 통신의 패킷 하나하나의 변조 검출 등 당사자끼리의 확인에 널리 사용됩니다. 키를 사용하지 않는 단순한 해시값은 공격자가 메시지와 함께 다시 계산할 수 있으므로 의도적인 변조의 검출에는 사용할 수 없습니다.

자주 묻는 질문

디지털 서명에서는 어느 키로 서명하나요?

서명하는 사람의 개인 키로 서명을 만들고, 검증하는 사람은 서명한 사람의 공개 키로 확인합니다. 암호화하여 비밀을 지킬 때와는 키의 사용법이 반대가 됩니다.

디지털 서명과 전자 서명은 같은 것인가요?

전자 서명은 전자 문서에 붙이는 서명의 총칭으로, 법률 등에서 넓은 의미로 사용됩니다. 디지털 서명은 그중 공개 키 암호 기술을 사용하여 실현하는 것을 가리킵니다.

해설 속 디지털 서명(Digital Signature)

디지털 서명(Digital Signature)이(가) 나오는 문제 (4)

  1. A 씨가 B 씨에게 보내는 문서에 디지털 서명을 붙인다. 서명의 생성과 검증에 사용하는 키와, 디지털 서명으로 확인할 수 있는 것의 조합으로 올바른 것은?
  2. 메시지 인증 코드(MAC)와 디지털 서명을 비교한 설명으로 올바른 것은?
  3. 공개 키 암호를 사용하여 A 씨가 B 씨만 읽을 수 있도록 메시지를 암호화해 보내려고 한다. 암호화에 사용하는 키는?
  4. 암호에서 사용되는 해시 함수(암호학적 해시 함수)의 성질로 올바른 것은?

관련 용어

해시 함수(Hash Function) 메시지 인증 코드(Message Authentication Code) 공개 키 암호(Public-key Cryptography) 다요소 인증(Multi-factor Authentication) 대칭 키 암호(Symmetric-key Cryptography) 랜섬웨어(Ransomware) 사회공학 기법(Social Engineering) 솔트(Salt) 제로데이 공격(Zero-day Attack) 최소 권한의 원칙(Principle of Least Privilege)

용어집으로 돌아가기