1 분 소요

디지털 서명에 대한 간단한 언급은 암호학이란?(2)편에서 언급했었습니다.
그러면 이번 글에서는 디지털 서명에 대한 작동원리를 보겠습니다.

▶ 암호학이란?(2)편 :https://yujinsong412.github.io/%EC%95%94%ED%98%B8%ED%95%99-%EC%95%94%ED%98%B8%ED%95%99%EA%B8%B0%EC%B4%88/cryptography_2/


디지털 서명(Digital Signature)

이전 글 - 마지막 부분을 보면 아래처럼 작성을 했었습니다. 디지털 서명이 비대칭키 방식의 이러한 예시가 됩니다.

여기서!!!그럼 무조건 private key는 복호화, public key는 암호화 라고 생각할 수 있는데 그렇지 않습니다. 반대로 private key는 암호화, public key는 복호화할 수 있습니다.

예시를 들면, A와 cracker 가 있고 어떠한 정보를 받았을 때 A가 작성한 원본인지 cracker가 작성한 조작된 데이터인지 어떻게 하면 알 수 있을까요? 여기서 비대칭키(공개키) 방식을 통해서 전자서명(Digital Signature)을 하는 방법을 살펴보겠습니다. A가 작성한 내용이 A가 썼는지를 B가 확신할 수 있는 방법으로써 전자서명을 보려고 합니다.

image

1) A가 key pair를 생성합니다. 내용을 작성하기 전에 public key를 인터넷에 올립니다. B는 public key를 가지고 있습니다. 2) 이 상태에서 A는 내용(PlainText)을 작성합니다. 이 PlainText 뒤에다가 PlainText랑 private key를 이용해서 암호화된 값(CipherText)을 뒤에 붙이는데 이 값이 전자서명입니다. 3) 이 내용을 인터넷에 올리고 B가 내용을 가져와서 4) B는 A가 공개한 public key로 A의 암호문(CT)을 해독합니다. 그러면 암호문의 원래 내용인 PT가 나오게 되는데 (-> 왜냐하면 Private key를 이용해서 PlainText를 암호화했으니 Public key로 복호화하여 PT를 확인할 수 있음 ) 이 PT과 공개된 PT를 비교했을 때 두 내용이 같다면 A의 public key와 대응되는 private key를 가지고 있는 A가 작성한 내용이라는 것을 확신할 수 있습니다. 5) cracker가 자신의 key pair를 생성해서 6) 자기가 조작한 내용을 PT + CT로 만들고 7) 인터넷에 올려서 B가 가져왔다고 했을 때 8) B는 A의 공개키를 가지고 암호문(CT)을 해독할텐데, 이 암호문은 A의 private key로 만든게 아니고 cracker의 private key로 만든 것이라서 해독되지 않고, 메시지도 같지 않아서 B는 이 내용이 조작된 것이라고 확신할 수 있게 됩니다.

이것이 디지털 서명이 동작하는 원리입니다.

댓글남기기