kisa
KISA - 전자서명인증관리센터
글자크기 글자크기 크게 글자크기 초기화 글자크기 작게
통합검색
KISA 운영 홈페이지 보기

알림마당

FAQ

홈 알림마당 > FAQ
해쉬알고리즘이란 무엇이며 해쉬함수의 특징과 종류에는 어떠한 것들이 있나요?
해쉬알고리즘은 데이터 ⑦무결성 및 메시지 인증 등에서 사용할 수 있는 함수로써 임의의 길이의 비트 열을 고정된 길이의 출력값인 해쉬코드로 압축시키는 함수이며, 암호학적 응용에 사용되는 대부분의 해쉬함수는 강한 충돌저항성을 지닐 것이 요구된다.

해쉬알고리즘은 크게 ⓐDES와 같은 블록암호알고리즘에 기초한 해쉬알고리즘과 전용 해쉬알고리즘으로 나눌 수 있으며 블록암호암고리즘에 비해 전용 해쉬암고리즘의 속도가 빠르므로 대부분의 응용에서 전용 해쉬알고리즘이 이용된다.

해쉬함수는 일방향 함수(one-way function)으로 다양한 길이의 입력을 고정된 짧은 길이의 출력으로 변환하는 함수로 데이타의 무결성 검증, 메세지 인증에 사용한다. 해쉬함수는 다음의 성질을 만족해야 한다.

일방향성 : 함수 f(X)에서 f(X)=Y의 경우 X로부터 Y의 계산은 쉬우나 Y로부터 X의 계산은 어려워야 한다.
여기서 x는 가변 길이의 메시지이고, y는 해쉬함수 h를 통하여 생성되어지는 고정의 길이의 해쉬값(hash code)이다. 해쉬함수를 거쳐 나온 값 Y를 메시지 다이제스트(Message Digest)라고 정의한다.

해쉬함수의 특징

  - 다양한 가변 길이의 입력에 적용될 수 있어야 한다.
  - 고정된 길이의 출력을 만든다.
  - 주어진 입력값을 해쉬하는 것은 쉽다.
  - 해쉬 결과값으로 입력값을 계산하는 것은 불가능 하다.
  - 동일한 해쉬값을 가지는 서로 다른 메시지 쌍이 없다.

전자서명을 할 때 해쉬함수로 메시지를 압축한 데이터에 서명함으로써 효율성을 높일 수 있다. RSA와 같이 전자서명에 사용되는 알고리즘은 메시지 자체를 암호화 하는 경우 해쉬함수 보다 처리속도가 느린데, 서명을 메시지 해쉬함수로 축약(Digest)함으로써 전자서명 알고리즘의 계산량을 줄일 수가 있다.

해쉬함수의 종류

현재 사용되고 있는 대표적인 해쉬함수는, 1990년에 R.C. Merkle에 의해 제안된 SNEFRU, 1989년에 일본 NTT의 미야구치 등이 발표한 N-HASH, 1990년과 1992년에 Ron Rivest에 의해 개발된 MD4와 ⓒMD5, 1993년에 미국 NIST에 의해 개발되었고 가장 많이 사용되고 있는 ⓔSHA(Secure Hash Algorithm)등이 있다.
한국인터넷진흥원

118 청사 (05717) 서울시 송파구 중대로 135 (가락동 78) IT벤처타워 Tel. 02-405-5118

본 홈페이지에 게시된 이메일 주소가 자동 수집되는것을 거부하며, 이를 위반시 정보통신망법에 의해 처벌됨을 유념하시기 바랍니다.