본문 바로가기
자격증/정보보안기사, 산업기사

해시(Hash), 해시함수(Hash function)란 무엇인가?

by 리액턴스 2022. 11. 25.
반응형

이 포스팅은 암호학의 한 부분인 해시(Hash), 해시함수(Hash function)의 내용을 다루며 해시의 특성, 동작 원리, 안전성 기준, 적용사례 등을 담고 있다. 미흡한 점이 있기에 다른 전문가의 정보도 함께 찾아보시기를 바랍니다. 또한 맞춤법 및 단어선정, 문법적인 오류, 오탈자가 있거나 불편함이 있을 수 있습니다. 감사합니다.


해시(Hash)함수란?

어떠한 임의의 길이를 갖는 데이터를 고정된 데이터 길이의 결과값으로 출력하는 단방향 함수를 말한다. 이러한 해시함수를 적용하여 나온 고정된 데이터 길이의 결과값을 해시값이라고 한다.

아마 현대 시대에 가장 많이 사용하는 암호화 알고리즘 방식일 것이다. 현대 시대에 가장 많이 사용하는 이유 중 하나는 일방향성 때문이다. 일방향성이면 무엇인가 안 좋은 것처럼 생각할 수도 있지만 보안에 있어서는 좋다고 할 수 있다. 암호화를 하고자 하는 데이터를 한 방향으로 암호화를 할 수 있지만 암호화된 데이터를 반대로 복호화는 할 수 없기 때문이다. 우리의 주변에 흔히 많이 사용된다. (패스워드, 개인식별정보 등)

해시함수-일방향성
해시함수의 일방향성

해시(Hash)의 안전성 기준(성질) 및 특징

  1. (제1)역상 저항성: 해시값으로 원본의 데이터를 유추할 수 없다. 출력값 Y에 대해, Hash(X)=Y를 만족하는 입력값 X를 찾는 것이 계산적으로 불가함.
  2. 제2 역상 저항성: 원본과 같은 해시값의 타 원본을 유추할 수 없다. 입력값 X 대해 Hash(X)=Hash(X'), X≠X'를 만족하는 다른 입력값 X'를 찾는 것이 계산적으로 불가함.
  3. 충돌 저항성: 같은 해시값을 가진 다른 두 원문을 유추할 수 없다. Hash(X)=Hash(X')를 만족하는 임의의 두 입력값 X, X'를 찾는 것이 계산적으로 불가함.

 

해시함수는 입력값이 조금만 변해도 결과가 크게 달라지는 특징도 있는데, 이를 눈사태 효과라고 한다.

해시함수-눈사태효과
해시함수 눈사태효과의 예

물음표 하나의 차이지만 결과값은 완전히 다르다.

 

대표적인 해시함수

해시함수는 키의 유무에 따라서 두 가지 종류로 분류한다. 키가 없는 MDC와 키가 있는 MAC로 분류한다.

  • MDC(Modification Detection Cryptography)는 무결성 검증으로 패스워드의 암호화 등에 사용하며 MDC의 대표적인 알고리즘으로는 MD5, SHA(SHA-1, SHA-256, SHA-512, SHA-3), LSH 등이 있다.
  • MAC(Message Authentication Cryptography)은 무결성 검증과 더불어 메시지의 출처 확인 용도로 사용하며 MAC의 대표적인 알고리즘으로는 H-MAC, CBC-MAC이 있다.

 

해시함수의 적용 및 현재의 해시함수

현대 시대의 해시함수의 사용처는 다양하다. 대표적으로 비밀번호, 전자서명, 전자투표, 전자상거래와 같은 민감한 입력의 무결성을 검증할 때 사용된다. 또한 파일의 위변조에 대한 무결성을 검증할 때도 사용한다. 파일 배포 시 해시값을 같이 배포하고, 파일의 해시값과 배포된 해시값이 같으면 파일이 위변조되지 않았다는 것을 확인할 수 있다.

 

해시함수에서 해시 충돌이 일어나기 쉽다는 것은 보안에는 매우 민감한 문제이다. 데이터의 무결성과 직접적인 연관이 있기 때문이다. 현재까지 개발된 거의 모든 해시함수는 해시 충돌의 문제가 확인된 상태이다.


 

다급하게 작성한점으로 인하여 추후 수정이 있을 수도 있습니다. 잘못된 정보에 대한 점은 댓글로 남겨주시면 감사하겠습니다.

반응형