본문 바로가기

기술질문Q&A

해싱, 디지털 서명과 비트코인 거래 증명 (POW) 도대체 잘 이해가 안가는데 ?

반응형

일상생활에서 공인인증서를 사용하여 민감한 개인정보나 금융 정보등 처리해야될 경우 이 과정을 거치게 된다. 그래서 궁금한것이 디지털 서명은 뭐고, 해싱은 뭐하는 것이고, 비트코인 거래에서 거래 증명이란 것은 뭔지 알고 싶을 때가 있다.

전자 서명(Digital signature)은 우리가 일상생활에서 신원을 확인하거나 거래를 하려고 할 때 주민등록증이나 인감 날인 또는 서명 등이 필요하듯이, 인터넷상에서도 이를 확실히 보장해 줄 수 있는 수단이 전자 서명이다. 한마디로 전자 서명은 이 증서 형태로 발급되는 자신만의 디지털 인감이며 서명인 것이다.

자 좀 더 스마트해지려는 당신을 돕기 위해 텍가이버씨가 시원한 답을 알기 쉽게 준비하였습니다. 본론으로 들어가기전에 몇가지 용어를 간단히 설명하고 이해하는 것이 필요합니다.

 

공개키: 인터넷상에서 비밀키로 암호화된 메세지를 해독하는데 필요한 상대방에게 공개된 키이다.

비밀키: 일반 메세지를 암호화하기 위해 자신만이 보관하고 있는키로 이 키를 사용하여 암호화된 해시 메세지가 만들어진다.

공개키와 비밀키는 쌍으로 만들어진다. 이 중 하나는 공개가 되고 다른 하나의 키는 개인티 혹은 비밀키로 보관된다.

해쉬/해싱: 메세지를 받아 일정크기의 암호화된 출력을 만들어주는 기능. 예를들면 SHA-256 (256-bit) 해시 함수

 

아래 그림으로 디지털 서명과정을 설명하려고합니다.

 

원본이라고하는 거래 내역을 담고 있는 어떤 문서가 있다. 여기서는 이를 원본이라고하자.

① 원본 해싱(암호화) 단계: 원본문서를 SHA-256같은 해시함수로 암호화하여 일정 크기 해시파일을 만든다. 이르 HASH 파일이라고 하자.

② HASH 파일을 개인 비밀키로 암호화하여 암호화된 HASH 파일을 생성한다. 이를 암호화된 HASH라고하자.

위 두 과정의 끝나면 전자 서명 양식에 원본, HASH 파일, 암호화된 HASH 파일을 넣어 전송한다.

③ 수신인 (김신용)은 먼저 암호화된 HASH 파일을 송신인 공개키로 해독하여 HASH 파일을 얻는다.

④ 다음 원본을 해시함수(예: SHA-256)를 사용하여 암호화하면 HASH 파일이 얻어진다

⑤ 이제 검증단계로 ③에서 얻은 HASH 파일과 ④에서 얻은 HASH 파일을 비교하여 동일하면 검증이 완료된다.

 

블록 체인에 담겨 있는 모든 거래 정보에는 이렇게 디지털 서명이 포함되어 있어서 거래 정보가 진본임을 신뢰할 수 있다.

 

이런 일련의 과정을 온라인상에서 실습할 수 있는 무료 사이트가 제공된다.

https://www.devglan.com/online-tools/rsa-encryption-decryption 이 사이트는 온라인 RSA 암호화/해독 생성 도구를 제공한다. 간단히 원본을 만들고 개인 비밀키(Private Key)로 암호화된 HASH 파일을 만든다음 전송했다고 가정하고 수신된 암호화된 HASH 파일을 공개키(Public Key)로 해독하면 원본 파일을 얻는다.

또한 위의 과정 전체를 시뮬레이션하려면 온라인 RSA 해시 생성기를 사용하여 원본으로부터 HASH 파일을 얻고 이를 개인 비밀키로 암호화하여 암호화된 HASH 파일을 얻는 실습도 할 수 있다.

이를 위해서 온라인 RSA 생성기 서비스를 제공하는 사이트인 https://emn178.github.io/online-tools/sha256.html 를 활용할 수 있다.

 

반응형