MD5 변환에 고정 된 점이 md5(x) == x
있습니까? 즉, x와 같은 x가 있습니까?
답변
MD5 합계는 길이가 128 비트이므로 고정 소수점도 반드시 128 비트 길이 여야합니다. 문자열의 MD5 합계 균일 주어진 128 비트 열이 정점임을 그 확률 모든 가능한 합계를 통해 분배되는 것을 가정하고있다 1 / 2 (128) .
따라서, 어떠한 128 비트 스트링 고정 소수점 없을 확률은 (1 – 인 1 / 2 (128) ) (2) (128) , 고정 된 지점이 확률은 1 정도로 – (1 – 1 / 2 (128) ) (2) (128) .
N이 무한대로 갈수록 한계 때문에 (1 – 1 / N ) N 이고 1 / E , 및 2 128 – 확실히 매우 큰 수이고,이 확률은 거의 정확하게 1 1 / E ≈ 63.21 %.
물론 실제로 관련된 임의성은 없습니다. 고정 된 점이 있든 없든 상관 없습니다. 그러나 고정 소수점이 있다고 63.21 % 확신 할 수 있습니다. (또한이 숫자는 키 스페이스의 크기에 의존하지 않는다는 점에 유의하십시오. MD5 합계가 32 비트 또는 1024 비트 인 경우 약 4 또는 5 비트보다 크면 대답은 동일합니다.)
답변
내 무차별 대입 시도는 12 개의 접두사와 12 개의 접미사 일치를 발견했습니다.
접두사 12 : 54db1011d76dc70a0a9df3ff3e0b390f-> 54db1011d76d137956603122ad86d762
접미사 12 : df12c1434cec7850a7900ce027af4b78-> b2f6053087022898fe920ce027af4b78
블로그 게시물 :
https://plus.google.com/103541237243849171137/posts/SRxXrTMdrFN
답변
해시는 되돌릴 수 없으므로 알아 내기가 매우 어렵습니다. 이 문제를 해결하는 유일한 방법은 해시의 가능한 모든 출력에 대해 해시를 계산하고 일치 항목이 있는지 확인하는 것입니다.
자세히 설명하자면 MD5 해시에는 16 바이트가 있습니다. 즉, 2 ^ (16 * 8) = 3.4 * 10 ^ 38 개의 조합이 있습니다. 16 바이트 값에 대한 해시를 계산하는 데 1 밀리 초가 걸린 경우 모든 해시를 계산하는 데 10790283070806014188970529154.99 년이 걸립니다.
답변
예 / 아니오 대답은 없지만 제 추측은 “예”이며 또한 2 ^ 32 개의 고정 소수점이있을 수 있습니다 (문자 문자열 해석이 아닌 비트 문자열 해석의 경우). 많은 창의력이 필요한 멋지고 간결한 퍼즐처럼 보이기 때문에 적극적으로 작업하고 있습니다 (즉시 무차별 대입 검색에 만족하지 않는 경우).
내 접근 방식은 다음과 같습니다. 수학 문제로 취급하십시오. 128 개의 부울 변수와 입력 (일치해야하는) 측면에서 출력을 설명하는 128 개의 방정식이 있습니다. 알고리즘의 테이블과 패딩 비트의 모든 상수를 연결함으로써 128 비트 입력 사례에 최적화 된 알고리즘을 생성하기 위해 방정식을 크게 단순화 할 수 있기를 바랍니다. 이러한 단순화 된 방정식은 효율적인 검색을 위해 멋진 언어로 프로그래밍하거나 다시 추상적으로 처리하여 한 번에 단일 비트를 할당하고 모순을 감시 할 수 있습니다. 입력과 일치하지 않음을 알기 위해 출력의 몇 비트 만 볼 필요가 있습니다!
답변
아마도,하지만 우리가 가지고있는 것보다 더 오래 걸리거나 MD5를 손상시키는 것을 수반 할 것입니다.
답변
두 가지 해석이 있으며 둘 중 하나를 선택하면 고정 소수점을 찾을 확률이 81.5 %로 증가합니다.
- 해석 1 : 이진 으로 된 MD5 출력의 MD5 가 입력과 일치합니까?
- 해석 2 : 16 진수 로 된 MD5 출력의 MD5 가 입력과 일치합니까?
답변
엄밀히 말하면 MD5의 입력 길이는 512 비트이고 출력은 128 비트이므로 정의상 불가능하다고 말할 수 있습니다.