Notice
Recent Posts
Recent Comments
Link
Douglas' Space
해쉬함수와 전자서명 본문
해쉬(hash)라는 용어는 SNS에서 검색을 위한 색인으로서 사용되는 해쉬태그라는 용어때문에 많은 사람들에게 익숙한 단어가 된 것 같습니다. 해시 함수(hash function) 또는 해시 알고리즘(hash algorithm)은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다. 해쉬태그와 같이 빠른 검색을 위한 용도로 사용되지만 암호학에서는 데이타의 무결성을 체크하는 것에 사용됩니다.

위의 그림은 해쉬함수가 평문을 암호문으로 변경하는 것을 나타내고 있는데, 이 함수가 갖는 3가지 특성이 매우 중요합니다.
- 해쉬된 문장(암호화된 요약문)은 원본의 크기와 상관없이 항상 고정 길이를 갖는다.
- 원본의 내용이 조금만 변경되어도 해쉬된 문장은 완전히 다른 내용을 갖는다.
- 해쉬된 문장을 가지고 원본의 내용을 찾는 것은 계산적으로 거의 불가능하다.
이러한 특성때문에 어떤 원본이 변경되는 경우 암호화된 이 요약문의 내용이 변경되므로 원본이 변조된 것을 쉽게 확인할 수 있습니다. 다시말해 데이터의 무결성을 바로 확인할 수 있습니다. 이러한 해쉬알고리즘은 인터넷에서의 통신, 블록체인 등에서 아주 유용하게 활용됩니다. SHA-256은 가장 대표적으로 널리 사용되는 해쉬함수로서 임의의 문서를 256비트(즉, 16진수의 값으로는 64개)의 숫자로 표현합니다. 아래 그림은 “hello!”와 “hello”를 SHA-256해쉬함수로 변환했을 때의 결과를 보여주고 있습니다.

특히 중요한 문서를 생성한 사람의 신분을 확인하는 전자서명(electronic signature)에 활용됩니다. 전자서명이란 일반 문서에 사람이 서명을 하는 것으로 신원을 확인하는 것과 같이 전자문서에 특정 개인의 확인을 위해 사용하는 것입니다. 전자서명하고자 하는 문서의 해쉬값과 본인의 개인키를 이용하여 암호화를 수행하는 방식으로 서명을 합니다.

위의 그림에서 초록색의 화살표처럼 Alice가 Bob의 공개키를 이용하여 단순히 암호문을 생성하여 보낸 경우에는 중간에 이 암호문이 변경되었거나, 이 암호문을 보낸 사람의 신원을 확인할 방법이 없습니다. 그러나 파란색의 화살표처럼 Alice가 보내는 원본의 해쉬요약문을 본인의 개인키로 암호화하여 평문과 함께 첨부하여 송부하면, Bob은 Alice의 공개키로 이 전자서명문서를 복호화하여 Alice가 보낸 것임을 확인할 수 있고, 복호화된 해쉬요약문과 첨부된 평문의 해쉬값을 구하여 비교함으로써 문서의 무결성까지 확인할 수 있게 됩니다.
'Computing Tech. Diary > Computing Buzzwords' 카테고리의 다른 글
NFT (0) | 2022.12.05 |
---|---|
블록체인 (0) | 2022.10.15 |
암호화 (0) | 2022.09.13 |
Open Source Software의 힘 (2) | 2022.08.25 |
Software Defined X (0) | 2022.08.16 |
Comments