본문/내용
1. CHAPTER 1. MD5 소개
MD5는 메시지 다이제스트 알고리즘 5(Message-Digest Algorithm 의 약자로, 데이터를 무결성 검증과 암호화 해시에 사용하기 위해 개발된 해시 함수이다. 1991년 로널드 리베스트(Ronald Rivest)에 의해 설계된 MD5는 입력 데이터를 128비트 고정 길이의 해시 값으로 변환하는 기능을 수행한다. MD5는 주로 파일의 무결성을 확인하거나, 비밀번호를 해싱하는 절차에서 많이 사용되며, 그 간편함 때문에 널리 퍼졌다. MD5는 특정 입력에 대해 항상 같은 해시 값을 생성하는 특징을 지닌다. 이는 동일한 데이터가 동일한 해시 값을 생성함을 의미하며, 데이터의 변경이 감지될 수 있도록 한다. 예를 들어, 파일이나 메시지의 내용을 조금이라도 변경하면 생성되는 해시 값이 완전히 달라지기 때문에 데이터의 무결성을 검증하는 데 유용하다. 하지만 이와 같은 특성은 MD5의 보안 취약점을 드러내는 요소이기도 하다. MD5의 내부 구조는 기본적으로 비트 조작, 논리 연산 및 산술 연산을 통해 입력 데이터를 변형하는 여러 단계로 이루어져 있다. 이 과정에서 입력 데이터는 여러 차례의 변환 과정을 거치고, 최종적으로 128비트의 해시 값이 생성된…