좋은 해시 함수에는 다음과 같은 속성이 있습니다.
메시지의 해시가 주어지면 공격자가 해시가 동일한 다른 메시지를 찾는 것이 계산적으로 불가능합니다.
한 쌍의 메시지 m '과 m이 주어지면, h (m) = h (m')가되도록 두 개를 찾는 것은 계산적으로 불가능하다
두 경우는 동일 하지 않습니다 . 첫 번째 경우 충돌을 찾으려고하는 기존 해시가 있습니다. 두 번째 경우, 충돌 하는 두 개의 메시지 를 찾으려고 합니다 . 두 번째 작업은 생일 "역설"로 인해 훨씬 쉬워졌습니다.
성능이 그렇게 큰 문제가 아닌 경우 항상 보안 해시 기능을 사용해야합니다. 해시에서 충돌을 강요하여 수행 할 수있는 매우 영리한 공격이 있습니다. 처음부터 강력한 것을 사용하면 이러한 것들로부터 자신을 보호 할 수 있습니다.
새로운 디자인에 MD5 또는 SHA-1을 사용하지 마십시오. 내가 포함한 대부분의 암호 학자들은 그것들이 깨 졌다고 생각할 것이다. 이 두 가지 디자인의 약점의 주요 원인은 위에서 설명한 두 번째 속성이 이러한 구성을 유지하지 않는다는 것입니다. 공격자가 m과 m '라는 두 개의 메시지를 생성 할 수 있으면 두 값 모두 동일한 값으로 해시되어이 메시지를 사용할 수 있습니다. SHA-1과 MD5는 또한 메시지 확장 공격으로 인해주의를 기울이지 않으면 응용 프로그램이 심각하게 약화 될 수 있습니다.
Whirpool과 같은 최신 해시가 더 나은 선택입니다. 이러한 메시지 확장 공격을받지 않으며 AES가 다양한 공격에 대한 보안을 증명하기 위해 사용하는 것과 동일한 수학을 사용합니다.
희망이 도움이됩니다!