2009-08-06 2 views
1

정보의 손실로 인해 Y 비트 (즉, 64 비트)라고 말하기 위해 X 비트 (즉, 128)를 줄이는 것이 가치의 md5/sha1이 주어진다는 것을 알고 있습니다. 그 길이 감소가 발생할 때 (원래 추측 확률과 비교할 때) "정확한"추측의 확률이 무엇인지 말할 수있는 도구/공식/표를 사용하기가 쉬운가요?해시 길이 감소?

답변

0

해시의 모든 추가 비트가 가능한 해시의 수를 두 배로 늘리므로 해시를 비트 단위로 줄일 때마다 가능한 해시가 절반 밖에 없으므로 그 난수가 두 배가된다는 추측 가능성이 있습니다 .

128 bits = 2^128 possibilities 

따라서

64 bits = 2^64 

그래서 반으로 절단하여, 당신은

2^64/2^128 percent 

적은 가능성

+3

md5 또는 sha1이 해시의 모든 하위 집합에 대해 동일한 양의 엔트로피 (임의성)를 보장한다고 생각하지 않습니다. 이 경우 균등 확률 분포가 적용되지 않습니다. –

+0

나는 동의해야하지만, 이런 종류의 절단을하는 사람들이 피하는 것은 마치 다양한 알고리즘을 사용하여 시도 할 때 얼마나 나쁜지를 말하는 뇌사 상태의 테이블이 있어야하는 것처럼 보입니다 –

+0

업데이트 : md5를 다시 검사하면 각 32 비트 섹션이 별도로 계산된다는 것을 알 수 있습니다. 128 비트 MD5 해시를 줄이려면 2 또는 4 비트마다 수행하는 것이 가장 좋습니다. 물론, 보안이 필요하다면 전혀하지 않는 것이 좋습니다. – erjiang

1

암호화가 어렵다 얻을. 나는 이런 종류의 일을 시도하는 것에 대해 권하고 싶다. 복어 요리와 같아요. 최고의 전문가에게 맡겨주세요.

전체 길이의 해시를 사용하십시오. 그리고 MD5 is brokenSHA-1 is starting to show cracks부터 새로운 응용 프로그램에서 사용할 수 없습니다. SHA-2가 지금 가장 좋은 방법 일 것입니다.

+0

나는 그것이 어렵지만 "정상적인"사람들이이 일의 결과를 이해하기 쉽지는 않을 것이라는 점에 동의한다. 결과가 있다는 것을 알고 있지만, 다른 사람들에게 그 비트의 절반을 잘라내어 원본의 "품질"의 절반을 기대할 수는 없다는 것을 확신시켜야합니다. –

1

나는 해쉬의 비트 수를 줄이지 않기를 권장한다. 여기에 문제가 너무 많습니다. 첫째, 어떻게 떨어질 비트를 결정하겠습니까?

둘째, 이러한 비트의 삭제가 새로운 "단축 된"해시 함수의 출력 분포에 어떻게 영향을 미치는지 예측하기 어렵습니다. (잘 설계된) 해시 함수는 입력의 일부분이 아닌 전체 출력 공간에 입력을 균등하게 분배하는 것을 의미합니다.

절반의 비트를 삭제하면 제대로 설계된 해시 함수의 거의 바람직한 특성이 없을 수도있는 원래 해시 함수의 부분 집합을 효과적으로 가져와 더 약점을 초래할 수 있습니다.

+0

그러나 효과를 정량화하지 않고 사람들을 설득하는 것이 어려울 것입니다. –