한국에는 자체적으로 개발한 해시 함수 HAS-160이 있다. 국가보안기술연구소와 TTA(한국정보통신기술협회)가 표준화한 이 160비트 해시 함수는 한국형 전자서명 알고리즘인 KCDSA(Korean Certificate-based Digital Signature Algorithm)와 함께 쓰도록 설계되었으며, 구조상 SHA-1과 비슷한 세대의 접근 방식을 취한다.
왜 한국은 자체 해시 함수를 만들었나
1990년대 후반 한국은 자체 전자서명 체계를 구축하면서 국제 표준에만 의존하지 않고 독자적인 암호 요소 기술을 확보하려 했고, HAS-160은 그 일환으로 개발되었다. 오늘날 신규 시스템에서는 국제 표준인 SHA-256 계열이 훨씬 널리 쓰이지만, HAS-160은 한국 전자서명 생태계의 역사적 배경을 보여주는 사례로 남아 있다.
MD5와 SHA-1이 안전하지 않다고 여겨지는 이유
두 알고리즘 모두 같은 해시를 갖는 서로 다른 두 데이터 집합을 만드는 실용적인 방법이 발견되었습니다 — 이를 충돌(collision)이라고 합니다. 이 때문에 암호학적 강도가 중요한 곳에는 부적합하지만, 단순히 빠른 무결성 확인만 필요한 곳에서는 여전히 사용됩니다.
SHA-256과 SHA-2 계열
SHA-256은 256비트 해시를 생성하며 현재까지 알려진 실용적인 충돌이 없습니다. 블록체인, TLS 인증서, 소프트웨어 무결성 검증에 널리 사용되는 국제 표준입니다.
왜 필요한가
- 공개된 해시와 비교해 다운로드한 파일의 무결성을 확인하기.
- HAS-160처럼 국가별로 독자적인 해시 표준이 존재하는 배경을 이해하기.
- 대량의 데이터에 대해 짧고 고유한 지문을 만들기.
SHA-3가 SHA-2를 대체하지 않은 이유
SHA-3는 SHA-2에서 언젠가 근본적인 취약점이 발견될 경우를 대비한 "보험"으로 NIST의 별도 공모전에서 선정되었습니다 — 이는 대체를 의미하는 후속 알고리즘이 아니라, 근본적으로 다른 내부 구조(Keccak)에 기반한 것입니다. SHA-2에 대한 실질적인 공격이 아직 발견되지 않았기 때문에, SHA-256은 대부분의 시스템에서 여전히 기본 표준으로 사용됩니다.