본문 바로가기

개발자 기본 소양/암호학

해쉬함수 (hash function)


출처 : http://www.securitytechnet.com/

국내 표준인 HAS160과 미연방 표준인 SHA1/SHA2, 그리고 유럽에서 가장 많이 사용중인 RIPEMD에 대한 표준 문서, 소스 코드(테스트 벡터 포함) 등을 제공합니다.
HAS160     SHA1/SHA2     RIPEMD

HAS160

HAS160은 한국형 디지탈 서명 표준인 KCDSA에서 사용할 목적으로 개발되었으며, 1998년 10월의 국내 단체표준화 (TTAS.KO-12.0011)를 거쳐 2000년 12월에 개정되었습니다. HAS160은 메시지를 512비트 블럭단위로 처리하여 160비트의 해쉬코드를 출력하는 Little endian 구조의 32비트 마이크로프로세서를 기본으로 설계된 충돌저항성의 해쉬함수입니다.

*HAS160 : 표준문서(TTA Link)
    -소스코드(zip)

SHA1/SHA2

SHA1는 미 연방정부의 디지탈 서명 표준인 DSA를 위해 개발된 해쉬함수로 MD5와 유사한 구조로 설계되었으나 보다 안전한 것으로 인정되고 있습니다. 160비트 길이의 출력을 내는 SHA1은 1995년 4월에 정식 표준으로 승인(FIPS PUB 180-1)되었으며 현재, 대부분의 인터넷 응용이나 국제/업계 표준들에서 DEFAULT 해쉬함수로 사용되고 있습니다.

SHA2는 보다 높은 수준의 안전성이 요구되는 응용을 위해 만들어진 해쉬 알고리즘들로 256비트, 384비트, 512비트 길이의 출력을 가집니다. 현재 FIPS에서 표준화를 추진중에 있으며, 2001년 5월에는 SHA1과 SHA2를 함께 포함하는 draft(FIPS PUB 180-2)가 발표되었습니다.

*SHA1 :     *SHA2 :
-표준문서(pdf) (local copy)     -Draft문서(pdf) (local copy)
-관련정보(htm)     -관련정보(htm)
-소스코드(zip)     -소스코드(sha256) / 소스코드(sha384) / 소스코드(sha512)

RIPEMD

1996년, H. Dobbertin, A. Bosselaers과 B. Preneel은 기존의 128비트 해쉬함수(MD4, MD5, RIPEMD)보다 강한 안전성을 보장하기 위해 RIPEMD-128을 강화시킨 RIPEMD-160을 발표하였습니다. 현재는 다양한 응용을 위해 256비트와 320비트의 출력길이를 갖는 RIPEMD가 발표된 상태입니다. 그러나, 두 개의 서로 다른 초기값을 갖는 RIPEMD-160을 병렬로 연결해 구성한 RIPEMD-320 은 RIPEMD-160보다 강한 안전성을 보장하지는 않으며 RIPEMD-128을 병렬연결한 RIPEMD-256 역시 강한 안전성을 보장하지는 않습니다.

*RIPEMD : 관련논문(ps) (local copy)
    -관련정보(htm)
    -소스코드(RIPEMD-160,zip) / 소스코드(RIPEMD-128,zip)

'개발자 기본 소양 > 암호학' 카테고리의 다른 글

암호/보안기술 연구정보  (0) 2009.03.02
전자서명 (digital signature)  (0) 2009.03.02
블록암호 (block cipher)  (0) 2009.03.02
국가 표준 암호 알고리즘  (1) 2009.03.02
RC4 예제1  (0) 2009.01.22