sha1sum 함수는 어떻게 고유한 해시 값을 제공합니까? [폐쇄]

sha1sum 함수는 어떻게 고유한 해시 값을 제공합니까? [폐쇄]

sha1sum이 명령을 사용하면 SHA-1 알고리즘이 실행되고 "고유한" 결과가 나온다는 내용을 읽었는데 이것이 어떻게 가능합니까?

sha1sum다음과 같이 40자 해시를 제공합니다.

e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e

길이는 40자이고 16진수 문자를 포함하므로 해시는 최대 16-40개의 조합 을 가질 수 있습니다 .

이는 임의의 두 개의 임의 파일에 대해해시 합계가 정확히 동일할 가능성은 적습니다. 그렇죠?

답변1

다른 해시와 마찬가지로 SHA-1 해시는 실제로 고유하지 않습니다.충돌 발견(더 중요한 것은 세심하게 제작되었다는 것입니다).

해시 함수의 이상적인 속성은 결과 해시 값이 고유하지 않으면서 동일한 해시 값을 생성하는 두 개의 파일을 구성하기 어렵다는 것입니다(말씀하신 것처럼 SHA-1과 SHA-1은 160비트이므로 2160개의 다른 해시 값만 있음 )) 난이도는 무차별 검색보다 더 빠르게 충돌을 찾을 수 없음을 의미합니다. 하나의 파일을 선택하면 무작위로 선택한 다른 파일이 동일한 해시를 가질 확률이 1/2 입니다. SHA-1은2005년부터 안전하지 않은 것으로 간주됨;생일 공격으로 인해 주어진 확률은 80분의 1이라는 것을 알 수 있습니다 (확률은 특정 대상에 대해 충돌하는 파일을 찾을 확률이 아니라 큰 건초 더미에서 두 개의 충돌하는 파일을 찾을 확률입니다) ).

관련 정보