====== MD5 ====== 128비트 [[암호학적해시]] 알고리즘. ===== 안전성 ===== 임의의 평문에 대해서 비교적 유일한 해시를 생성해 낸다는 점에서 해시 알고리즘으로 쓰기에는 여전히 문제는 없지만, [[왕샤오윤]] 교수팀이 [[2005년]]에 최초로 제어된 충돌을 시연해 보인 뒤 꾸준한 기술 발전으로 이제 암호학적 목적으로 쓴다면 좆망한다고 봐도 될 정도로 약해졌다. [[SHA-1]]을 대신 쓰자 이제. 현재 가능한 공격 방법들: * 임의의 평문 $$M$$에 대하여 $$H(M) = H(M + \delta)$$인 $$\delta$$를 찾는 공격 (현재 랩탑에서 1분 정도 걸림) * 임의의 평문 $$M_1$$, $$M_2$$에 대하여 $$H(M_1 || X) = H(M_2 || X')$$인 $$X$$와 $$X'$$ 쌍을 찾는 공격 (chosen-prefix attack, 아직 계산량이 많이 필요함). [[2008년 12월]]에 이 공격으로 MD5 해시를 쓰는 [[인증서]]를 [[http://www.win.tue.nl/hashclash/rogue-ca/|복제]]해서 CA 인증서로 둔갑시키는 시연이 등장했다. * [[salt]]를 쓰지 않는 짧은 평문 $$m$$에 대한 해시 $$H(m)$$은 거의 대부분 인덱싱되어 있다고 봐도 좋다. [[MD5 reverse lookup]] 참고. {{tag>암호학}}