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개