인프런 커뮤니티 질문&답변

최한울님의 프로필 이미지
최한울

작성한 질문수

외워서 끝내는 SSL과 최소한의 암호기술

디지털 서명이란?

디지털 서명을 잘 이해했는지 모르겠습니다

해결된 질문

작성

·

322

1

디지털 서명을 다음과 같이 통신 과정으로 이해하려고 하는데, 맞게 이해한 것인지 잘 모르겠습니다. 혹시 틀린 게 있다면 말씀 부탁드릴게요!!

준비물: 문서, private key, public key, 컴퓨터 A와 B

  1. 컴A에서 문서를 해쉬함수에 넣어 해쉬값을 얻는다 (hash A)

  2. hash A와 private key를 이용해 암호문을 만든다

  3. 컴A에서 컴B로 문서, 암호문, public key를 전송한다

     

  4. 컴B는 암호문과 public key를 이용해 hashA 를 얻는다

  5. 컴B는 문서를 해쉬함수에 넣어 해쉬값을 얻는다 (hash B)

  6. hashA와 hashB가 같은지 비교하여, 데이터 위변조를 확인한다. 같다면 위변조되지 않았음을 알게된다.

답변 3

3

최한울님의 프로필 이미지
최한울
질문자

혹시 저와 같은 분들을 위해 다시 한번 더 정리해봤습니다.

준비물: 문서, private key, public key, 컴퓨터 A와 B

컴B에는 X.509형식 인증서로 public key를 이미 전달받았다고 가정한다

  1. 컴A에서 문서에 대한 해쉬값을 얻는다

  2. 문서에 대한 해쉬값을 private key로 암호화한다(디지털 서명)

  3. 컴A에서 컴B로 디지털 서명한 문서만 전송한다

     (디지털 서명한 문서에는 원본문서, 서명이 포함되어 있다)

     

  4. 컴B는 전달 받은 디지털 서명된 문서에서 원본 문서를 꺼내고, 문서에 대한 해쉬값을 구한다

  5. 컴B는 전달 받은 디지털 서명된 문서에서 서명값을 꺼내고, public key로 서명을 복호화하여 해쉬값을 얻는다

  6. 이 둘의 해쉬값이 같은지 비교하여, 데이터 위변조를 확인한다. 같다면 위변조되지 않았음을 알게된다.

 

2

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

2번 과정에서는 Hash 를 이용해 암호문을 만드는 것이 아니라 문서에 대한 Hash 결과를 Private key로 암호화 하는 것입니다.

3번 과정에서는 암호문을 보내지 않습니다. 디지털 서명한 문서만 보냅니다. 그리고 Public key는 X.509형식 인증서로 전달되는 것이 보통입니다. 키 자체에 대한 검증 때문입니다.

4번에서는 컴B는 디지털 서명된 문서에 대해 Hash를 구하고 Public key로 암호화된 해시 결과를 풀어서 둘을 비교합니다. 결과가 같다면 문서는 변조되지 않은 것으로 판단합니다.

참고하시기 바랍니다. 😄

0

최한울님의 프로필 이미지
최한울
질문자

답변 감사드립니다!!

최한울님의 프로필 이미지
최한울

작성한 질문수

질문하기