`md5sum`은 얼마나 정확합니까? 때 프로세스는 얼마나 정확합니까? 확인 된

md5sum파일의 무결성을 확인하기 위해 사용할 때 프로세스는 얼마나 정확합니까?

확인 된 MD5는 모든 비트가 정확히 동일하다는 것을 의미합니까, 또는 이진 변경이 MD5에 반영되기 전에 깨져야하는 임계 값이 있습니까?

md5가 생성되는 방법에 대한 모든 문서도 감사하겠습니다.



답변

이 목적을 위해 MD5는 지적인 적에 대항하여 깨졌습니다. 동일한 MD5 해시를 생성하는 서로 다른 두 개의 데이터 블록을 악의적으로 구성 할 수 있습니다.

그러나 MD5를 사용하여 전송 또는 저장시 우발적 인 데이터 손상을 방지하는 것이 전적으로 적합합니다 (거의 더 나은 방법이 있지만). 그러한 사건이 MD5 해시를 동일하게 만들 수 있다고 생각할 수 있지만, 확률이 너무 낮아서 걱정할만한 확률이 거의 상상할 수 없습니다. 백그라운드 방사선, 터널링, 정적 및 수십 개의 다른 소스로 인한 장애는 수십 배 더 높습니다.

1 조 개의 데이터 단위가 있더라도 일치하지 않는 MD5가 해당 4 조 단위 중 하나에 속하는 MD5 해시를 생성 할 확률은 1 조에서 1보다 훨씬 적습니다.


답변

MD5는 해시입니다. 기본적으로 파일의 전체 내용을 16 바이트 길이 IIRC의 작은 문자열로 매핑합니다.

분명히 동일한 MD5 합계로 해시되는 여러 파일이 있습니다. 따라서 일치하는 MD5 합계는 파일 간의 정확한 일치를 보장하지 않습니다.

해시가 작동하는 방식 때문에 임계 값이 없습니다. 따라서 MD5 합계는 단일 비트 변경도 감지 할 수 있습니다. 그러나 많은 단일 비트 변경으로 인해 MD5 해시가 동일 할 수 있습니다. 따라서 무작위 손상에 대해 파일 무결성을 검증하기 위해 MD5를 사용하는 것은 상당히 합리적이지만 누군가가 MD5 해시가 동일한 지 확인하면서 파일을 수정할 수 있으므로 악의적 인 의도가있을 수있는 경우에는 없습니다.


답변

MD5- 해시는 128 비트로 구성됩니다. 소스의 단일 뒤집힌 비트는 해시에서 64 비트를 뒤집습니다 (평균).

실수로 충돌하는 두 개의 해시의 확률은 1 / 2 ^ 128이며, 이는 340 개의 undecillion 282delayion 366 nonillion 920 octillion 938 septillion 463 sextillion 463 quintillion 374 quadrillion 607 조 6 억 4 억 1 억 7,800 만 211 천 456에서 1입니다.

그러나 모든 해시를 유지하면 생일 역설 덕분에 조금 더 높습니다. 50 %의 확률로 해시 충돌이 발생하려면 2 ^ 64 해시가 필요합니다. 이는 평균적으로 충돌을 일으키기 위해 100 년 동안 초당 60 억 개의 파일을 해시해야한다는 것을 의미합니다.

출처 : porneL, https://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions