MD5는 1990년대 초 과학자 Ronald L. Rivest가 만든 128비트 해시 알고리즘입니다. 약어 MD5는 Message Digest Version 5를 나타냅니다.
MD5 암호화는 진위 여부를 추가로 확인하기 위해 "지문" 또는 "합계"를 형성하는 해싱을 기반으로 합니다. 이 방법을 사용하면 정보의 무결성과 암호 해시 저장을 확인할 수 있습니다.
MD5 역사
MD5(Message Digest Algorithm)의 역사는 1991년 MIT 교수인 Ronald L. Rivest가 구형 MD4를 대체하는 새로운 알고리즘의 생성에 대해 보고하면서 시작됩니다. 독일 암호학자인 Hans Dobbertin이 나중에 쓴 것처럼 MD4의 경우 실제로 많은 단점이 발견되었습니다.
Rivest는 RFC 1321에서 새로운 MD5 알고리즘을 설명했습니다.
알고리즘에 대한 작업은 연구원 Bert den Boer와 Anton Bosselars에 의해 계속되었습니다. 그들은 1993년에 서로 다른 초기화 벡터가 동일한 메시지 다이제스트와 일치할 수 있는 MD5에서 의사 충돌의 가능성을 증명했습니다.
또한 1996년 Hans Dobbertin은 MD5에서 충돌을 발견했다고 주장했습니다. 당시 Hans Dobbertin, Anton Bosselars 및 Bart Prenel이 개발한 RIPEMD-160 암호화 해시 함수, Vincent Raymen 및 Paulo Barreto가 개발한 Whirlpool, SHA-1 암호화 해싱 알고리즘과 같은 더 선호되는 해싱 알고리즘이 알려졌습니다.
MD5의 상대적으로 작은 해시 크기(128비트)로 인해 생일 공격 가능성에 대한 이야기가 있었습니다. 2004년 Jean-Luc Cook이 시작한 MD5CRK 프로젝트는 생일 공격을 사용하여 알고리즘의 취약성을 연구하는 것을 목표로 했습니다. 그러나 5개월 후인 2004년 8월 17일 Lai Xuejia가 이끄는 중국 암호학자 그룹이 알고리즘의 취약점을 발견하여 프로젝트가 중단되었습니다.
2005년 3월 수학자이자 암호학자인 Benne de Weger, Arjen Lenstra 및 Wang Xiaoyun은 동일한 해시와 다른 공개 키를 사용하여 두 개의 X.509 문서를 만들었습니다.
1년 후인 2006년 3월 체코의 암호학자 Vlastimil Klima가 간단한 컴퓨터에서 단 1분 만에 충돌을 결정할 수 있는 알고리즘을 발표했습니다. 이 알고리즘은 '터널링' 방법으로 알려지게 되었습니다.
작업 결과를 분석한 결과, 2008년 미국 국토안보부 산하 국가사이버보안국(US-CERT)은 개발에 참여한 모든 사람에게 소프트웨어, 웹 사이트 및 네트워크 사용자는 응용 목적에 관계없이 MD5 알고리즘 사용을 중단합니다. 그러한 추천의 이유는 그가 그것을 연구하는 과정에서 보여준 신뢰성이 없었기 때문입니다.
2010년 12월 중국의 암호학자 Tao Xie와 Feng Denguo는 512비트(한 블록)의 메시지 충돌을 발견했습니다. 이전에는 길이가 두 블록 이상인 메시지에서만 충돌이 발견되었습니다. 나중에 Mark Stevens는 동일한 MD5 해시로 블록을 게시하여 유사한 결과를 얻었습니다. 그는 또한 이러한 유형의 충돌을 얻기 위한 알고리즘을 개발했습니다.
MD5 알고리즘 개발의 역사에 종지부를 찍는 최종 문서는 의견 요청이었습니다. RFC 6151(RFC는 IETF(Internet Engineering Council)에서 개발한 공식 문서로 특정 실제로 MD5를 안전하지 않은 해싱 알고리즘으로 인식했습니다. 이 문서에서는 SHA-2 계열의 암호화 알고리즘을 대안으로 선택하여 이를 포기할 것을 권장합니다.
논의된 MD5 알고리즘은 웹 애플리케이션 데이터베이스에서 파일의 무결성을 확인하고 암호를 저장하는 데 사용되는 최초의 알고리즘 표준 중 하나로 간주됩니다.
그러나 사실 상대적으로 단순한 기능, 짧은 출력 길이, 수행되는 작업의 단순성은 알고리즘의 장점이기도 하지만 단점도 결정합니다. 생일 공격으로부터 보호.