해시 탭은 파일의 '디지털 지문' 이라고 할 수 있는 해시값을 보여주는 프로그램입니다. 사용이 자유로운 프리웨어이고 윈도우의 기본 파일 속성 항목에 파일 해시 탭 항목을 추가해주는 방식으로 설치가 이루어지는 덕분에 사용이 매우 간편하고 편리하여 가장 많이 사용되는 프로그램 중 하나입니다.
윈도우 7 64 비트에서도 아무런 문제없이 사용이 가능합니다. 뿐만 아니라 MAC OS X 10.4 이후의 운영체제도 지원을 하고 있습니다. 아래의 공식 다운로드 사이트를 통해서 다운로드 받으시거나 윈도우 사용자는 제가 올려드린 파일을 다운로드 받으셔도 됩니다.
프로그램을 설치하는 과정은 매우 간단하니 간단하게 스크린 샷만으로 과정을 보여드리도록 하겠습니다.
프로그램의 사용법은 말씀드렸던 것처럼 매우 간단합니다. 해시값의 확인을 원하는 파일을 마우스 오른쪽 버튼으로 클릭한 후 메뉴에서 속성 항목을 선택합니다.
그런 후 새롭게 추가된 파일 해시 탭으로 이동하면 파일의 해시값을 바로 확인할 수 있습니다.
그럼 실제로 해시값을 비교하는 예시를 보여드리도록 하겠습니다. 아래는 HashTab 공식 사이트에서 제공한 HashTab.exe 파일의 해시값입니다. 보시면 MD5 해시값을 제공해 주고 있죠? 이 값을 Hash 탭을 통해 알아낸 값과 비교하여 일치하면 동일 파일인 겁니다. 간단하죠? 비교해본 결과 제가 다운로드 받은 파일은 제작사 측에서 제공한 파일과 100% 동일한 파일이네요.
HashTab 은 기본적으로 CRC32, MD5, SHA-1 의 세 가지 해시 항목을 제공해주고 있습니다. 만약 이와 다른 해시값을 보고자 한다면 Options 링크로 들어가시면 됩니다.
파일의 데이터를 해시 함수(Hash Funtion) 또는 해시 알고리즘(Hash Algorithm) 을 통해 계산하여 산출 된 값으로 이러한 값은 해당 파일의 고유한 값이 됩니다. 인간이 어떠한 특정 개인을 판별하기 위해 해당 개인이 가지는 고유한 정보인 지문이나 DNA 를 사용하듯 해시값은 해당 파일이 가지는 고유한 정보로 파일의 '디지털 지문' 또는 '디지털 DNA' 로써 사용됩니다.
특정 파일들의 해시값이 같다는 것은 해당 파일들이 완벽하게 일치하는 100% 동일한 파일임을 의미하며 만약 임의의 사용자가 파일의 데이터를 1 bit 라도 조작하게 되면 해시값은 전혀 달라지게 됩니다. 해시값이 다르다는 것은 두 개의 파일이 서로 다른 파일임을 의미합니다. 그리하여 파일을 배포하는 측에서 해당 파일의 해시값을 알려주면 해당 파일을 받은 사용자는 해시값을 비교해 봄으로써 자신이 받은 파일이 원래의 배포자가 배포한 원본임을 확인하는 용도로 사용되고 있습니다.
흔치는 않지만 서로 다른 인간의 지문이 일치하는 경우가 있을 수 있듯이 서로 다른 파일의 해시값이 일치하는 경우도 생길 수 있습니다. 이러한 현상을 해시 충돌이라고 부르게 됩니다. 이러한 경우 다른 해시 함수를 적용하여 계산하는 방법을 통하면 이러한 해시 충돌을 피할 수 있습니다. 그리하여 파일을 제공하는 측에서는 단순히 하나의 해시값이 아닌 여러 개의 해시 함수를 통해 계산한 다양한 해시값을 제공해 줌으로써 만일에 발생할 수 있는 해시 충돌로 인한 판별 오류를 최대한 방지하고 있습니다.
이러한 해시 함수에는 CRC32, MD5, SHA-1, RIPEMD-128, Tiger 등 많은 종류가 있으며 보통은 앞의 세 가지 값을 가장 많이 사용하고 있습니다. 이 중 MD5 나 SHA-1 의 경우 CRC32 에 비해 해시값을 산출하는 함수가 복잡하여 해시 충돌이 일어날 확률이 극히 드물기 때문에 소규모나 개인이 파일을 배포하는 경우엔 해당 값만을 제공하는 경우도 많습니다. 하지만 마이크로소프트의 윈도우 설치 DVD ISO 이미지 파일과 같이 큰 회사에서 배포하는 파일의 경우 어느 정도 신중을 기해야하기 때문에 가장 많이 사용하는 세 가지 해시값을 모두 제공해주거나 추가로 더 많은 해시값을 제공해주는 경우가 대부분입니다.
정리하면 해시값이란 하나의 파일이 가지는 하나의 고유한 값으로 해시값이 같은 파일은 100% 동일한 파일임을 의미하며 해시값이 다른 파일은 서로 다른 파일임을 의미하는 것 입니다. 이를 통해 회사나 특정 개인이 배포한 파일을 다운로드 받은 사용자가 해당 파일이 제작자 측에서 올린 원본과 동일한 파일인지는 판별하는 여부로 사용되고 있습니다.