해시 함수에 대해 들어본 적이 있나요?
해시 함수는 임의의 길이를 갖는 메시지를 입력하여 고정된 길이 값의 해시 값을 출력하는 함수를 말합니다. 대부분 긴 입력을 받아 짧은 출력을 산출합니다. 해시 함수의 대표적인 예로는 MD5, SHA 등이 있습니다. 이러한 해시 함수는 디지털 서명, 공개키 암호화, 무결성 검증, 메시지 인증, 패스워드 보호 등 많은 분야에서 널리 사용됩니다.
해시 함수의 암호학적 강도는 출력되는 값을 예측할 수 없다는 예측 불가능성을 따릅니다. 이해를 돕기 위해 직접 SHA-256 해시 함수로 해시 값을 구해보는 실습을 진행해보겠습니다.
우선, 알파벳 a의 해시 값을 구해보겠습니다.

두 번째로 알파벳 b의 해시 값을 구해보겠습니다.

a와 b는 실제로 비트 하나만 차이날 뿐이지만, 해시 값은 완전히 달라짐을 확인할 수 있습니다. 이를 통해 c의 해시 값을 예측하기는 거의 불가능에 가깝다는 것을 알 수 있습니다.
마지막으로, ab의 해시 값을 출력해보겠습니다.

이전의 결과와 비슷하게, 역시나 앞서 구했던 a와 b의 해시 값과는 전혀 연관 없는 값이 출력된 것을 확인할 수 있습니다. 또한, 평문의 문자열의 길이가 다름에도 불구하고 동일한 길이의 해시 값이 출력된 것을 통해, 해시 값은 평문의 길이와 상관없이 일정한 길이를 출력해낸다는 것도 확인할 수 있습니다.
이번 시간에는 아주 간단하게 해시 함수의 개념과 쓰임에 대해 설명하고, 간단한 실습을 진행해볼 수 있었습니다. 이를 계기로 하여, 암호학, 보안 등에 관심 가지고 있는 많은 사람들이 흥미를 가지고 더 깊이 공부해볼 수 있는 기회가 되었으면 좋겠습니다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]