
이 포스트는 널널한 개발자님 강의를 참조하여 작성하였습니다.
비대칭키라는 것을 알았다면 이제 디지털 서명을 알아야 한다. 서명이라는 것은 계약서 같은 서류에다가 도장을 찍거나 날인을 해서 이 서류가 유효하다는 것을 약속을 하는 것이다. 그런데 이런 도장이라는 것을 위조해서 누군가 나 대신 날인을 하면 사기행위가 되는 것이다. 그래서 이런 것을 못하게 부인방지, 위조방지를 해야하고 이런것들이 인터넷 환경에서 반드시 요구가 되다 보니까 디지털 서명이라는 개념이 있는 것이다. 우리가 인증서라는 개념을 잘 알고 있을 텐데 그 인증서라고 하는 것의 핵심이 인증서 안에 public key가 들어가져 있다는 것이다. 그럼 public key가 있다라는 것은 그것과 쌍을 이루는 private key가 있다라는 것이다. 근데 이 private key는 나만 가지고 있는 키이다. 그래서 이 private key를 이용해서 디지털 서명을 하는 것이다. 예를 들면 근로계약서 같은 문서가 있다 하자. 이 문서 내용에 대해 위조방지를 위해 이 문서를 해시연산을 한다. 해시연산 후에 이 해시를 나의 private key로 암호화를 한다. 그러면 이것을 어떻게 위조가 안되었는지 확인을 하냐면 문서를 해시연산 후에 public key로 풀어서 비교를 해서 같은 해시가 나오면 위조가 안된 문서라 판단을 하는 것이다.