MD5
용어요약Md5
임의의 길이의 데이터를 128비트(16바이트) 고정 길이 값으로 변환하는 암호학적 해시 함수로, 현재는 보안 용도로 안전하지 않은 것으로 간주된다.
1.개요
MD5(Message-Digest Algorithm 5)는 1991년 로널드 리베스트(Ronald Rivest)가 설계한 암호학적 해시 함수이다. 어떤 크기의 입력 데이터든 128비트, 즉 16바이트 길이의 고정된 해시값으로 변환하며, 그 결과는 보통 32자리의 16진수 문자열로 표기된다. 예를 들어 빈 문자열의 MD5 값은 d41d8cd98f00b204e9800998ecf8427e이다.
해시 함수는 같은 입력에 대해 항상 같은 출력을 내고, 입력이 조금만 바뀌어도 출력이 전혀 다르게 나오며, 출력값으로부터 원래 입력을 되돌릴 수 없다는 성질을 가진다. MD5는 이러한 성질을 이용해 한때 파일 무결성 검증(다운로드한 파일이 손상되지 않았는지 확인), 비밀번호 저장, 디지털 서명 등에 널리 쓰였다.
2.보안 취약점
MD5는 오늘날 암호학적으로 안전하지 않은 것으로 간주된다. 서로 다른 두 입력이 동일한 해시값을 갖는 상황을 충돌(collision)이라 하는데, 2004년 이후 MD5에서 충돌을 의도적으로 만들어 내는 방법이 발견되었고, 현재는 일반적인 컴퓨터로도 짧은 시간에 충돌을 생성할 수 있다. 이 때문에 위조된 파일이나 인증서를 진짜인 것처럼 꾸미는 공격이 가능해졌다.
따라서 보안이 중요한 용도에서는 MD5 대신 SHA 계열(SHA-256 등)의 더 안전한 해시 함수를 사용하는 것이 권장된다. 다만 충돌을 악의적으로 만들 필요가 없는 경우, 예컨대 단순한 파일 중복 검사나 캐시 키 생성 같은 비보안 용도에서는 계산이 빠르다는 이유로 여전히 쓰이기도 한다.
3.블록체인에서의 위치
블록체인 기술은 데이터의 무결성과 작업증명을 위해 해시 함수에 크게 의존한다. 그러나 비트코인을 비롯한 주요 암호화폐는 충돌 취약점이 있는 MD5가 아니라 SHA-256과 같은 안전한 해시 함수를 채택한다. 따라서 MD5는 암호화폐 프로토콜의 핵심 구성 요소로 쓰이지는 않으며, 해시 함수라는 개념과 그 안전성이 왜 중요한지를 보여 주는 역사적·교육적 사례로 주로 언급된다.
토큰포스트 위키, “MD5”, 2026-07-28 수정, https://wiki.tokenpost.kr/w/md5Accept: text/markdown 로 요청해도 같은 결과문단 3개 · 연표 0건 · 각주 0개