해시란?
해시는 다양한 길이를 가진 데이터를 특정한 길이로 매핑한 값입니다. 해시는 참고로 해시 코드, 해시 함수 값 등의 줄임말입니다. 데이터를 해시로 매핑할 때 사용되는 함수는 해시 함수라고 불리며, 함수를 통해 매핑된 해시는 여러가지 특징을 가지게 됩니다. 그 중 눈여겨 볼만한 특징은 “특정 패턴의 배열을 가진 인덱스나 데이터 값을 이용해 보관 및 서칭이 가능하다는 것”입니다. 해시가 없던 과거에는 데이터 자료 구조를 파악하고 찾는 작업에 매우 긴 시간이 걸렸고 찾기도 어려웠습니다. 하지만 데이터를 특정한 길이로 나눈 해시 기술의 등장으로 속도가 매우 빨라졌으며 서칭의 효율성도 높아졌습니다. 따라서 해시는 방대한 데이터를 다뤄야 하는 블록체인 기술에서는 없어서는 안 될 요소로 평가 받고 있습니다.
블록체인 기술 분야 외에도 해시는 다양한 곳에 활용되고 있습니다. 원래의 문장을 복구할 수 없다는 특징 덕에 보안 관련 기술 쪽에서도 해시를 적극 활용 중입니다. 비밀번호나 전자서명처럼 무결성적인 검증이 필요한 분야에서도 해시가 자주 사용되고 있습니다.
해시 함수란?
해시함수는 일상생활에도 스며들어 있는 암호 알고리즘입니다. 가장 많이 접하는 예는 사이트나 시스템에 가입하고 로그인하는 과정 속 아이디와 비밀번호 일치 확인에 활용되는 해시 함수 기술입니다. 이 기술은 양방향이 아닌 단방향으로 움직여 기존 원본 내용을 알 수 없다는 해시함수의 특성을 활용해, 사용자 개인 정보를 지키면서도 암호 일치 여부를 체크합니다. 우수한 보안성 덕분에 해시 함수는 블록체인의 핵심 매커니즘으로 여겨지고 있습니다.
블록체인에 적용되는 해시 함수
어떤 데이터가 들어오더라도 동일한 크기로 출력하는 것 또한 해시 함수의 특징입니다. 이 덕분에 사용자는 익명성을 보장 받을 수 있습니다. 트랜잭션에 모든 거래가 기록되고 지갑의 주소에서 잔액이나 송금 내역도 볼 수 있지만, 지갑의 주인까지는 파악할 수 없는 것은 이러한 해시 함수의 특징을 활용했기 때문입니다. 가상화폐에 ‘암호’라는 수식어가 붙는 것은 해시 함수의 능력 덕분이라고 할 수 있습니다.
해시 함수에서 주의해야 할 점
하지만 해시 함수 사용 간에 주의해야 할 점도 있습니다. 입력 값이 조금만 달라져도 아예 다른 것으로 변형되어 매우 조심해야 한다는 것입니다. 만약 서로 다른 값을 해시 함수에 넣었는데 동일한 값이 출력되는 ‘해시 충돌 현상‘이 발생한다면 시스템에 큰 에러가 발생하기도 합니다. 이를 방지하기 위해 해시 함수는 제작 과정에서 충돌 저항성, 역상 저항성 , 제 2역상 저항성 이 세 가지 기준을 꼼꼼하게 살펴 안정성을 평가 받습니다.
해시 암호화
해시 암호화는 수학적 알고리즘 그 자체입니다. 위에서 언급했듯 가장 대표적인 해시 암호화는 사용자가 시스템 접속 시 사용하는 ID와 PW입니다. 기존에 해시 암호화에 쓰이던 SHA-1과 MD5 알고리즘은 기술 발달에 따라 보안의 취약점이 드러났습니다. ID와 PW는 무엇보다 민감한 개인정보이기 때문에 KISA에서는 보안 취약성을 보강한 SHA-256 사용을 권고하고 있습니다. 참고로 SHA-256은 어떤 값을 입력하던 256비트로 값을 도출하는 해시 암호화 알고리즘입니다.
해시 암호화의 안정성을 높이기 위해서는 스트레칭과 솔트를 활용해야 합니다. 해시 스트레칭이란 복잡한 암호화 해시 함수를 수천 번 반복해 더욱 예측하기 어렵게 하는 과정입니다. 스트레칭을 통해 해시 암호화 과정에 시간이 많이 소요되고 반복 횟수가 늘어날수록 자체적인 방어력도 높아집니다. 한편 솔트는 32비트 이상의 문자열을 각각 다르게 부여합니다. 만약 사용자 A와 B가 같은 패스워드를 사용하더라도 솔트를 덧붙이면 다른 다이제스트를 생성할 수 있는 것입니다. 이는 동일 값에 동일 다이제스트를 생성하는 해시 함수의 문제점을 보완해주는 방법으로 현재 널리 쓰이고 있습니다.
자주 묻는 질문 (FAQs)
해시란 무엇인가요?
해시란 데이터를 동일한 길이로 편집한 값입니다. 다양한 분량의 데이터를 저장하기 위해서는 동일한 분량으로 편집해야 합니다. 이를 위해 데이터를 해시로 나누고 저장합니다. 해시 덕분에 데이터 검색 및 편집이 수월해지므로 대용량 데이터를 다뤄야 하는 블록체인 기술의 필수 요소 중 하나입니다.
해시 함수는 무엇인가요?
해시 함수란 일상 속에서 사용되는 해시 기술입니다. 대표적인 예시로는 로그인 시 ID와 PW 중복을 확인할 때 이 기술이 사용됩니다. 또한 해시 함수는 정보를 일정한 값으로 잘라 암호화시키는 특징을 가지고 있기 때문에 암호 화폐의 핵심 기술이기도 합니다.