문제
동일한 길이의 100 개의 다른 문자열 세트가 주어지면, 문자열에 대한 SHA1 다이제스트 충돌 가능성을 어떻게 정량화 할 수 있습니까?
해결책
SHA-1에 의해 생성 된 160 비트 해시 값은 모든 블록의 지문이 고유 할 수있을 정도로 충분히 큰가요? 균일 분포가있는 임의의 해시 값, n 서로 다른 데이터 블록의 모음 및 b 비트를 생성하는 해시 함수를 가정하면, 하나 이상의 충돌이있을 확률 P는 블록 쌍의 수에 의해 구속됩니다. 주어진 쌍이 충돌합니다.
다른 팁
충돌 가능성은 다음과 같습니다.
1 - ((2^160 - 1) / 2^160) * ((2^160 - 2) / 2^160) * ... * ((2^160 - 99) / 2^160)
10의 공간에서 2 개의 항목이 충돌 할 확률을 생각해보십시오. 첫 번째 항목은 확률이 100%인 독특합니다. 두 번째는 확률 9/10으로 독특합니다. 따라서 둘 다 독특 할 확률은입니다 100% * 90%
, 충돌 가능성은 다음과 같습니다.
1 - (100% * 90%), or 1 - ((10 - 0) / 10) * ((10 - 1) / 10), or 1 - ((10 - 1) / 10)
꽤 가능성이 낮습니다. 원격 가능성이 되려면 더 많은 문자열이 있어야합니다.
테이블을 살펴보십시오 Wikipedia 의이 페이지; 128 비트와 256 비트로 행 사이를 보간하십시오.
제휴하지 않습니다 StackOverflow