2011-02-04 3 views
1

2가 있습니다. 4 바이트 키가 있습니다. 충돌의 기회는 무엇입니까?MD5는 4 바이트 및 8 바이트 키를 16 바이트 값으로 해시합니다. 충돌의 기회는 무엇입니까?

내가 2 64 8 바이트 키가 (정말 모든 키 저장하지 않는,하지만 나는 최악의 경우를 알고 싶어) 경우?

+2

이 숙제가 있습니까? 그것이 좋든 그렇지 않든, 지금까지 무엇을 알아 냈습니까? –

+0

2 ** 64 키를 저장하기 위해 무엇을 사용하고 있습니까? 알맞은가요? 그 많은 데이터를 저장할 수 있기를 원합니다. –

+0

'@Felix Kling :'이것은 숙제가 아닙니다. 나는 범위가 [0, * d *] 인 불연속 균일 분포에서 추출한 * n * 임의의 키에 대해 일반 수식 (적어도 두 개의 키가 같을 확률)을 계산했습니다. 작은 숫자에도 적용되지만 * n * = 2^32 및 * d * = 2^128이 너무 큽니다. – Supercollider

답변

3

the wikipedia page on the Birthday Problem 일 때, 양호한 1 차 근사값은 1-e^(-(n^2)/d)에서 찾을 수 있습니다. 귀하의 값을 그래프로 나타내면 this graph (대수 수평축, 확률이 급상승하는 곳을 확대했습니다)입니다. 이것은 근사치에 불과하므로 보수적으로 고려해야합니다 (즉, 실제 확률은 다소 높을 수 있지만 올바른 야구장에 있어야 함).

0

해시 코드로 무엇을하고 있습니까? 두 개의 데이터가 같은지 여부를 확인하는 데 MD5 해시를 사용하면 악의적 인 엔티티에서 생성하지 않는 데이터로 작업하는 경우에만 MD5 해시가 매우 유용합니다. (암호화 목적은 "악의적 인 공격자"문제를 처리하기 위해 더 나은 해시 알고리즘을 정확하게 필요로합니다.)

맵을 작성하는 데 사용할 경우 (즉, 해시 테이블을 작성하는 경우) 일반적으로 값싼 해시를 사용하고 충돌 비용을 줄일 수있는 방법을 제시합니다 (예 : 해시 테이블에서 연결된 목록을 매달고 평균 가중치가 너무 커지면 크기 조정/다시 작성).

관련 문제